diff --git a/www/docs/rest-api/agent-schedules.tag.mdx b/www/docs/rest-api/agent-schedules.tag.mdx new file mode 100644 index 000000000..a1826669b --- /dev/null +++ b/www/docs/rest-api/agent-schedules.tag.mdx @@ -0,0 +1,20 @@ +--- +id: agent-schedules +title: "Agent Schedules" +description: "Agent Schedules" +custom_edit_url: null +--- + + + +Create and manage scheduled automated execution of agents at specified intervals. + + + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + + +``` + \ No newline at end of file diff --git a/www/docs/rest-api/bulk-delete-corpus-documents.api.mdx b/www/docs/rest-api/bulk-delete-corpus-documents.api.mdx index 47f1c2a2d..046d81767 100644 --- a/www/docs/rest-api/bulk-delete-corpus-documents.api.mdx +++ b/www/docs/rest-api/bulk-delete-corpus-documents.api.mdx @@ -5,7 +5,7 @@ description: "Initiates an asynchronous bulk delete operation for documents in a sidebar_label: "Bulk delete documents from a corpus" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "delete api-method" info_path: docs/rest-api/vectara-rest-api-v-2 custom_edit_url: null @@ -55,7 +55,7 @@ Use the returned `job_id` to track progress via the Jobs API. @@ -70,7 +70,7 @@ Use the returned `job_id` to track progress via the Jobs API. diff --git a/www/docs/rest-api/create-agent-input.api.mdx b/www/docs/rest-api/create-agent-input.api.mdx index 34aa2a899..a76658d52 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 @@ -54,7 +54,7 @@ Create a new input to an agent to interact with it. @@ -62,7 +62,7 @@ Create a new input to an agent to interact with it. diff --git a/www/docs/rest-api/create-agent-schedule.api.mdx b/www/docs/rest-api/create-agent-schedule.api.mdx new file mode 100644 index 000000000..4b4dfbfb6 --- /dev/null +++ b/www/docs/rest-api/create-agent-schedule.api.mdx @@ -0,0 +1,95 @@ +--- +id: create-agent-schedule +title: "Create agent schedule" +description: "Create a new schedule for automatically executing an agent at specified intervals. Each execution creates a new session with the configured message and metadata." +sidebar_label: "Create agent schedule" +hide_title: true +hide_table_of_contents: true +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 +--- + +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"; + + + + + + + + + + +Create a new schedule for automatically executing an agent at specified intervals. Each execution creates a new session with the configured message and metadata. + +Schedules enable automated agent workflows such as daily reports, periodic monitoring, or regular data processing. The schedule will create sessions tagged with metadata to identify them as scheduled executions. + +## Example request + +```json +\$ curl -X POST https://api.vectara.io/v2/agents/support-agent/schedules \ +-H "Authorization: Bearer YOUR_API_KEY" \c +-H "Content-Type: application/json" \ +-d '{ + "key": "daily-report", + "name": "Daily Summary Report", + "message": [{"type": "text", "content": "Generate a summary of today's activities"}], + "schedule": { + "type": "interval", + "interval": "PT24H" + }, + "session_metadata": { + "report_type": "daily" + } +}' +``` +A successful response includes the unique schedule key, configuration, and creation timestamp. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/create-agent-session.api.mdx b/www/docs/rest-api/create-agent-session.api.mdx index 430361323..9d709733b 100644 --- a/www/docs/rest-api/create-agent-session.api.mdx +++ b/www/docs/rest-api/create-agent-session.api.mdx @@ -5,7 +5,7 @@ description: "Create a new session for interacting with an agent. A session is t sidebar_label: "Create agent session" 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 @@ -76,7 +76,7 @@ A successful response includes the unique session key, configuration metadata, a @@ -84,7 +84,7 @@ A successful response includes the unique session key, configuration metadata, a diff --git a/www/docs/rest-api/create-agent.api.mdx b/www/docs/rest-api/create-agent.api.mdx index 8b929a735..8ee1f6292 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"}},"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"}}}}} + body={{"required":true,"content":{"application/json":{"schema":{"description":"Request object for creating a new agent.\nThe entry point must be defined via first_step_name (preferred) or first_step (deprecated).\n","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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent, keyed by skill name.\nSkills provide specialized instructions that can be invoked during agent execution.\n","type":"object","additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]},"example":{"code_review":{"description":"Reviews code for best practices.","content":"When reviewing code..."}}},"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":{"description":"Deprecated: prefer defining all steps in the steps map and using first_step_name.\nInline definition of the entry point step. Can be combined with first_step_name\nonly if first_step_name equals first_step.name AND steps[first_step.name] is\nidentical to first_step.\n","deprecated":true,"title":"FirstAgentStep","type":"object","properties":{"name":{"description":"Unique identifier for this step within the agent. Must not conflict with any key in the steps map.","type":"string","minLength":1,"maxLength":255,"default":"first_step","example":"classifier"},"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["name","instructions","output_parser"]},"first_step_name":{"description":"Name of a step in the steps map to use as the entry point. This is the preferred\nway to define the entry point - define all steps in the steps map and reference\nthe entry point by name here.\n","type":"string","minLength":1,"example":"classifier"},"steps":{"description":"A map of named steps keyed by step name.\nSteps can transition to other steps defined here via next_steps.\n","type":"object","additionalProperties":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.\nThe step name comes from the map key in the agent's steps map.\n\nA step gets all previous session history in the agent session, including any prior agent steps,\nthen the agent decides what to do in this step based on the given instructions. Finally, the\nagent either stops working if there is no next step defined or continues to the first next step\nthat matches the condition.\n\nAn agent always executes steps serially. If parallel behavior is desired, giving the agent\nother agents as tools is usually the most correct approach.\n\nEach step can only use tools defined by its `allowed_tools` list; if this list is not specified\nthen all tools known to the agent are allowed.\n","type":"object","properties":{"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\nIf omitted, the agent may behave oddly as it has no system instructions and\nwill just attempt to respond to user input and previous session history.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"description":"How to parse and format the agent's output.\nDetermines which event type is emitted.\nDefaults to 'default' parser if not specified.\n","allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur. Useful for keeping the agent on-task during long conversations.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\nTool names must reference keys in the agent's tool_configurations map.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["instructions","output_parser"]},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}],"output_parser":{"type":"default"}},"support_handler":{"instructions":[{"type":"inline","template":"Handle support requests"}],"output_parser":{"type":"default"}}}},"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},"compaction":{"description":"Configuration for automatic context compaction when the session approaches context limits.","title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}}}},"required":["name","tool_configurations","model"],"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"}},"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"}}}}}} + 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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent, keyed by skill name.\nSkills provide specialized instructions that can be invoked during agent execution.\nThe skill list (name + description) is shown in the system message; content is loaded on invocation.\n","type":"object","additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]},"example":{"code_review":{"description":"Reviews code for best practices and security issues.","content":"When reviewing code, focus on..."}}},"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":"FirstAgentStep","description":"The entry point step for an agent, with a unique name.\nSee AgentStep for full step documentation.\n","type":"object","properties":{"name":{"description":"Unique identifier for this step within the agent. Must not conflict with any key in the steps map.","type":"string","minLength":1,"maxLength":255,"default":"first_step","example":"classifier"},"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["name","instructions","output_parser"]},"first_step_name":{"description":"The name of the first step. Matches first_step.name.","type":"string","example":"classifier"},"steps":{"description":"A map of additional named steps keyed by step name.\nThe first_step can transition to steps defined here via next_steps.\n","type":"object","additionalProperties":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.\nThe step name comes from the map key in the agent's steps map.\n\nA step gets all previous session history in the agent session, including any prior agent steps,\nthen the agent decides what to do in this step based on the given instructions. Finally, the\nagent either stops working if there is no next step defined or continues to the first next step\nthat matches the condition.\n\nAn agent always executes steps serially. If parallel behavior is desired, giving the agent\nother agents as tools is usually the most correct approach.\n\nEach step can only use tools defined by its `allowed_tools` list; if this list is not specified\nthen all tools known to the agent are allowed.\n","type":"object","properties":{"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\nIf omitted, the agent may behave oddly as it has no system instructions and\nwill just attempt to respond to user input and previous session history.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"description":"How to parse and format the agent's output.\nDetermines which event type is emitted.\nDefaults to 'default' parser if not specified.\n","allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur. Useful for keeping the agent on-task during long conversations.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\nTool names must reference keys in the agent's tool_configurations map.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["instructions","output_parser"]},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}],"output_parser":{"type":"default"}},"support_handler":{"instructions":[{"type":"inline","template":"Handle support requests"}],"output_parser":{"type":"default"}}}},"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},"compaction":{"description":"Configuration for automatic context compaction when the session approaches context limits.","title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}}},"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 6f5c71524..ca5481da7 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 8b356a667..c18936fe9 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: eJztW+tv47gR/1cIoZ+2fuxt+8koiuaye2jQxwa7uRZFNkjG0tjihSJ1JGWvEfh/L2ZISZQtJ3t7d30AzrdIw3lxHj+O6KfMw9pli9vsoq6VzMFLo8Wlkqi9y+4m2eepa+raWI/FFGo5fcTd1O9qpCXXaJ3RoIiuQJdbWdPybJFdaHFR15GPkE40DguxMla8v2h8Kd7MXgtofInatzK3JWqRg1JSr8U/MPdgQVxcX7lZNslMjZbJropskeUWweNFXQf+2SSrwUKFHi2Z8pRJ0qFEKNBmk0xDhdki+4A/Nuj89EZWaBpaNdT5pkSSJ7ZSKVHBIwoQS3Re4GplrBfeiNxUtUKPwpcobOAnpOZ/XY25XEkshMPc6MIJY4WXFQrTeLLB5SVWkC2esuC/TGqPa9awklpWTZUtvtlPMuIrLRbZYgXK4X7yZfZM/yaVku7XM6ti/j/Htv1dsA6d/9YUOyLPjfa0hYunDPoAnP/gSPenhO/QqGg7K8/BIEBo3MboSjiJPIQghR6ZUyvwK2MrUjqqapY/YM7hIElEJTV4Y0lmbSnu/O7vweFMP8kqqGup16w9M7/PLRYUyaDcsaqXUb9BRmxLmZcClDJbJ3amYUNAqUHgi8ZRLvQZE21JxI2ZEbWWyMqEYDlUiiwSZsUueZar85Zs3R9E1SG/t/1/P5FteHDI76aULkQsqC3snFiG4NyAalA8HPv94Zg5qbyCRnmqGMcbtZ9kUMt7axSO7BplDL8SvgR/wqCgYQkbTKSDtbDLJpn0WI0w/tAzBaqKllIJNMVsJwG08JSoRo9ZhZqy6TYzW80JBgWlmPOWw3aSLSXX0PvD57mxdeNOPS5wg4oChziuyVmHhOHpRuI2ITpeRjZRQ/DSK9L7opZkc7bfd7JO+PyS305jxcnZ/wKck2tdUTuKSSxdkklf7vgXuL+cSVH5R9yNxSuKR9x1sc+kQdcghyoS7bsZTQKiGWeaaBkbKDPtrAiSviZMuo3EQtKTu/2g99ym9kYNk10N3uw2Nmz9qVyil7/Wtj7P/OVdDZqf3NSrt+2eMuF/YktZ0OyTfiUeRhLxQUzFdw0Vxv6p3KCAPEdH2iTKSp2rpqAeUqBCLs6gC5EbvZLrJgCqVFAICZLwAaGYGq12CV96GxkPOEyEQ+ek0W4icEM7OhFSO2+b3IenJNQbo1wqrKscJO8StKhMIVe7cQmhyc8r0LDGRF5TF9RcmTmLSQWn0qgqkaC/ykp6LBKzCKlYyL3YSl8mzlvuglRyXyuQRTjU7FOp68a7GemujT/pHqrv0TSHntiRYs8k7C9QfQ9TuQ/y40zmBIqJfLCMsUNUlI8Cm4BOrsHy8WBxG9FNB8UjLhtUCqYIry/73tlSslCj8f2KkfsZO52x0xk7nbHTGTudsdMZO52x0xk7PYed7oYyW2HD5UcC9lFZVxvtQia/ef3NSHkYwK5QAyZhkuuN+LFBu+M9T3BXEghtknJhm3Gz/KpR34U+PdUbBks3Yx5Oll+uY7IYrzadYb0Xrt7OBAOsq7c01qbgZbFFQ5FIYCQou1JmOxPiz2aLG7QTdsnV20BLPorT1cR1Y32oBu/RkjpQ1/ez3/6GquM4KiV9y6YCPbUIBSwVCp0A1dH28PUA9QV2ETKe8mve+rL3B3NNXPcMV4e5Rf8s50ASuEvNgRnnzm4mBBFGCleaRhWEkB+x5nWNxVHhz+DddsIeMC94D3kZcuSkq85A9wx0z0D3DHTPQPcMdP/fgG7ohbVRMh/Jh39y0wq+FSBqK3Uua1BpwxpAn+e+yH7JOI6yZYB0Yice7+I0NcTivrtPMFIs3nfvYge2KOI62u+BDPEO8lJ03EQFOxEyghaIHK0HqYVFZxqbY8IxyFwGntBRiBoowEz/IIztKqhn4mqVDPIIfTZKMbQMHu3VkK7TmNN517Eb8zIUhaRloK4H/h665Zo3nFQLtvUuFHIVjA4z1+GtgecEHxRZYnsPenffrjlW4mo1sCY1tP3C3+mVSFwaoxB0Otb0tsEkILodGokHVjdk/iPuHAXaYLu4QoBQ0nl61yrUsZyJi4P9dR6sd4ElSl+iFUtT7Cb8dkLFQFZ02JGe1tIresZLU9OTg0S/94ER1SDQHZuhx5L/6H0f1xEk/5QgOdWAD1Lv6Hw8sttDPNilYQi8kyfskZQeMurWp0/bq0NBsd+/fj0CGvpTX6jxRneXY7bgRAWK6hYWP+Nw+85aY4VF31jq83wHCjopxBQkJZjegJKF6K85UTxspFHg0YnAXTDNFx55VxJVcY8k/sSJJrwLBcuiCh20ByDMwLW3hL4+cLoAmWQVOgfrF8Iq7mCkPa7x++6K0cnjZw/XWkezkdSgltjNN0pUddek4h04UeCyWYstkW/5W5Q1ej3SaZJY+xaKOHjhze4i7ncjJRZtJSOIKAwPF2IfaTHG8YHya6cqYo0aLaiwz6KdBoWaBDo+zk2BXEuiv18OrHQTj13fvm3bH9m0LUPxCRJNnjfWhqT62iCYZPgZ6EobdQxCbhqUcGg3aIOU2f9gnPTRsadx4Qqtnrricbq2pqmn8c4ftIWL7vklRBX60hQtVQDC7AaP2gWYc/uU8QHm9I3OScbIYnizk64ftuvGdOoWpbqNLkp17FdFXWmUGQiyRVYbFy51+jJbZPPNmzmNv/LO8LCVwabGKrob6X3tFvM51HIWB60zaZgrz3Sk3zH1RS3/gjsaM2WLW7aNZ05v+L+E+COlTQjilqCrSQb4weE9y0CXnBliTGSTjCZarr8veDm8LujNI+rvh2Y0vkzsmAeRc6bk25amZuVCsKRG9ZWTH1LWjN0d/dzuPIcgFYsP/b3Md23ytJA7/Sqcmtw9jjJHvhQPBmftnOHucMhzOxyc9IzDATkuow0azBBuByfzo1VjZ6T93Z5csjJpHWmz98O7jzeM7TfH29u+c6K2ZiOpLApvoe1tfEJcRwjGQI3w6BaX0yVQoUhqM53s/mUariMrSThNKSo0prFBAHjxMB7QlAp/oJ1DXdRGav/HB9FOH9tHjo8XpvFK6jD+DGcGK03jhGuWDuPpjIsbTVSur8QHXKFFnfNktBsCxINKGEJ4Q2VPat/IMEzQBLq5PwEhWl2ALdiHq0aJcMKmaeon/UlPWU2u7NoLSt54THn1avPm1asZUTykhj1E1oRWS4kWbF7KHBK+k3jcIPRnc3BBoXJXl8guFuI7Y0VsBBPxMKcIMxbmiz7U5oXJG54vPYTjdtQsW2RvZq9nrym00Vbu/eoj2o2kE0mXo+2u5KaaK1yDmjPp1KymLhDPuUYrs+ZgGxaqwuRulrKQ1bpleb81tqjAPs5qDmdQ/gY/+z5QM+4QBdjHn8P9Xsl16Z+TwfgzZ2yBFUiSsEIslpA//inhzjWEanYFOikaY5d3DtMquQD+i/9mIBYlj5/9vFYgNZnEfnqKreU240RPm8vdJCup+yxus6cnSt3vrdrv6TF/76I+Qb3LSvrCEnpIW1z5+pJ09KK9u/+Mtb/2rw1GrQ918viHEG0z5sb9X7DhuZ8WfLkh/S8gBvYE2sug9fRmgHSOMXO/4iLPsfbP0qag5fr9xxv6sBJ/2FCZgtZY2FJDgi1pQ79j6YZO/OwpU6DXDYHYRRZ40t+/ASswR60= +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-corpus-document.api.mdx b/www/docs/rest-api/create-corpus-document.api.mdx index 40d8d665c..90790709f 100644 --- a/www/docs/rest-api/create-corpus-document.api.mdx +++ b/www/docs/rest-api/create-corpus-document.api.mdx @@ -5,7 +5,7 @@ description: "Add a document to a corpus for indexing, making its content availa sidebar_label: "Add a document to a corpus" 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 @@ -82,14 +82,14 @@ For larger documents or performance-tuned ingestion, you can explicitly set a `c @@ -97,7 +97,7 @@ For larger documents or performance-tuned ingestion, you can explicitly set a `c diff --git a/www/docs/rest-api/create-instruction.api.mdx b/www/docs/rest-api/create-instruction.api.mdx index 074c2cb91..14dee74eb 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 @@ -52,9 +52,14 @@ You have access to the following tools: #end ``` :::tip Tips for effective instruction design -Provide clear, directive language in the template to shape the agent’s behavior. You can emphasize specific requirements using capital letters or negative instructions such as **DO NOT**. +Instructions are one of the most critical parts of an agent's design. Best practices vary by model, but at a minimum you should provide clear guidance on what tools are available, what output format is desired, and what steps to follow for common queries. Instructions typically need to be iterated on and tested over time. -Metadata can personalize behavior. For example: +For guidance on writing effective instructions, see: +- [Claude Prompt Engineering](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview) +- [OpenAI Prompt Engineering](https://platform.openai.com/docs/guides/prompt-engineering) +::: + +Metadata can personalize behavior at runtime. For example: ```velocity Hello ${session.metadata.user_name}, how can I help with ${session.metadata.department} today? @@ -65,7 +70,7 @@ Hello ${session.metadata.user_name}, how can I help with ${session.metadata.depa { "name": "Customer Support Tone and Style Guide", "description": "Defines tone and behavior for customer interactions.", - "template": "You are a customer support agent. ALWAYS be polite and DO NOT USE technical jargon.", + "template": "You are a customer support agent for the ${session.metadata.department} department.", "enabled": true, "metadata": { "owner": "customer-support-team", diff --git a/www/docs/rest-api/create-llm.api.mdx b/www/docs/rest-api/create-llm.api.mdx index 2641ac160..a87991c02 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: eJztPWtTIzmSf0VR82GAqLKNG3aufbd356EZlmloCJre2Y6hw8hVsq2lqlRbUgEegv9+kSnV02VjaGaPbtRfGkqvTOVDmalUcucoOpXO4HfniKZTRo5oPM3olJFjEbBQOl9c59aTWZKIVLHAown3rtjcU/OEwaDDOGC3H1l6zX3muM4pS6WIaQjDAib9lCeKi9gZOIexYtOUKkbYrWJpTEPSuiDZODo6lpuEx0qQvzNf0ZSSiUjJGVMpZ9c0JMNsGrFYsYAcsJilFFYgG2fDg01C44D4M6o6ZE/EMfMVOUlYPDwkw9NDzxdRQhUfh4xEeq1JKiKSpOKaByyVJORXjAxjNUtFwn2XDP/IUuaSAyGmIXOJSImfSSUibyYkLM/iIBE8VrJDTmKfET9lVLHAJSmbsJTBp7nI8lHk6OiYjOckphEjPCb/ylg6J9MShYSmNGKKpbJzEXsFBuV+HR1LkkkeTw1WVYyGp4ewTRFVZuyET7OUkSgLFU9ChquXqMKOBnyCYCqSSUZ8KpmEsSfXLE15wPLd/1GSccZD5fFYg3DD1UwjJm5is5Uw8BPMolHN9xfoNjxwkSYuUicQfgbUIzKLIpryPxD3i/gi3trav6URgFqAOdjagpYffvjBYKz7nc8TNtjaIpciYTHllW24hGbNSNDh4PTc2xEu/r8LTcNMzaDhZ0ZTlhIlrhiufXl5+U8JYNxdxIRcOMDeF86AXDgLS1w4ru4DdNR9ork3TdRu0YLY66ZporyyIUu5/jxTKpGDbpcmvKNX6Pgi6l5vd2GnurBayGBjZDGWZmoGgxHCOoxjxMb0xCbEC9vkldfpdC4caLq/iO8R1/qmkjMmExFLJoGLyi3e2hoQg36a9yj3F1u3vSRl15zduPBzxGPuEvEGfyAbKaNSxMCumh02cwrA0DoFtrY+CIUL/iJS0hxI1IwqEoj4R2AbVEVEqpTRiMfTtchXwt9KPbHdRrsSuxdLwEJZkb2QZgF7pHz4OMjb8USSSbf8ddebUX6V1b5IUEdqmRBppTBjNGDpswiUXrmNLAYmDQ+C1u/1d3tv+29Xk4nme5VTKmJS0il7DgrRWFWoZKbTuyFrMxZAeNcslaD5cIp+r//G6/3F620vIzQcRU9Xgm86u1oL7pANnMoLWBKKOQuIgaOUThizp9W4xoBsmFN/81koS3H9aaJ2linMneWE/Hzy6cw72/948ulsbz+XPJwRqao/dDVycMxIPeLd/unRyefj/Q/nC/L5P4Cc2YS/9nv9Ha/X97Z3F0R/BXMYti+ZI/8AjWbvKq3XNMzMSDhFzYZgn1baa/uD/J2lit2S4SHZOGCgYTcbjHCNHTzKGwwwxd5evwNICbf6+ySkclYlvDHlCPV9kcUKbB6wLAC4lbQv1l5yPOKSrfTWwGxr4JYTPpOez2KV0nDbozwJqQJrpzPFvaEJl7lUJ6n4J/Nzwp+enfy6v3feDYWPhoasTtRNsnHI5Yylsqsn6uoDp1uHamCMNLYnYsVitQ5PSL2RI7ORFfJfsfkIdxH73XU6HdnY9F8/nnzodDr3S/jBCKexAfdKcXucXhjGcyJZOMmtWVE1VF0iM39GqMRlzkSmWNppUf7loOfU/drKDsOojWPCkEbUe+P91BsvZ5doDsO93EL/sw5nA6n50qCW4wLC2rg/DJyBo/2Do6Njx3VKY98Z/H7ncPCR9BY6Lu6GM3DO2L8yJpV3ziMmMuU0farzmbb7b3gYkoheMULJmElF2GQCNpISxODKiJoxkur5wPmAX2XCfD7hLCCS+SIOJFBT8YgRkamO4zrSn7GIOoM7R7t7DgcnDiEE8YiyyBls37sOzMtTFjiDCQ0lu3fXw8c75mHI5Z+HVoTzfw1u9180dkyqn0Uwh+6+1gHwI02SkGu90gWOh2/lvHWkDO4IPLIBoa0OMPG12wcOIbhPuX94DR5aQsc85IozCSgYwMUY9B3sIocFIx5TJVKAIEmB/9T8g95+7O86EU0SHk+hw4I8rgV33OJ+PoBKG7g0DE8myPz1FfdEFAHynIWBdiEXlwNPsua1oHtrKNW6OWYvOJOAo2bI5sqwT4Bo6b4DPx0dHXfI+YxLzZBjBu5yANwm1IylZRSAbGAAAf36TXIzY7Hx1hUMxmkOJ/oXjAH4Ip6E3FfGo6ZkGoqx9vPJBsX/0PHhkiQpcLF26QPdHUDL4yP5cbjpwueYcKVhFbkrj/PAhLCdNAxJhpZvZaOkSoEpXIdpJxwIgYY2edP5iXxEY1vLxhGLp2rmDLaBlW7z3/q7u/cNQW5u77vyNyImxd62wBCwCc1C5Qwcp7bIdq/Xc504C0OKzIrqpgoyqo6GT1RBQPuTzr2rz5NFEGE8NmkKKYGhkWK/gdE2WGfaIWimFv5R3yVM+ZuGTbgsOCQflJZSpDVWJFQ9JLOaFGadN95Pud+DPk9/+y0gk6W8HZVPZ4cFeyLpCyR8GgMnmwAAMEU8J41wUj5yswU0HWpyBrh2FdKVHlfz+AXg4eStqOFSm9WwAbODxcpoW5ILAy30JMXg1JO0oD7gH4ah5u/SGkALCkbP1KTJcSYVbHtpVCDs4+bEK0XCgFvddPPp3tW2STsz1FYxnI0718RkORvSsR+wSQf/Ofe1k//3fGM1BBg2vtbq6ZRCkBFjzGfI+EONYiGo+PsX11Fc4TJ6o/HrvZtbEQ+Sp+azemMKIviVVMr9ONynhYlXUqmwfSqioT/VUFokk/G5q/pHq5zbPPjeJo/lKkU3WAhdzZXrYA+z0Mp5dZRjJekLnPWyX8UDf8O5NA/AciJmxlqwQvryhNTK5muVzS8tq1W6ViYs9lYuIj0MAg4/0pD87fz81GyABNx57IdgxaERllv4uSEFFtTw9LDVvSimPG3hq3wXYbcUk2qEVt+o6pUvwBjPSTlp5bZOW9c01Z4o7ERhawF8QZZqJ4ARWIn4NAzXB1ilWdXCvQNzeITiK53B7nYfEKg6hotw71Vawe5u9zsf9pl4RKdsZO5fFpf5bcbQHVKFCW26SoIjCY+TrOabjYUIGY2BMdCpvlWjkEe8Ze5jegseOTHdyA2PA3FDJP8Db1L1dlRmLn35wk7lsXrT18pXhCOggbH+1sYCBnYnWax9czNDOzpSpZmvwFcbiUwB2o9aqRxO9PDKLXH7gobx5CgVIRvREG+M272wxXXzwbAu9xWBOUhlDthiX8QQI9cx1A75DbxMZE1okczPMEKR36jk7p0ERYnT5a7zNBVZwgKixBTBaEPnvlQfR0fHVfZdUG7ox2sHqKJ0tFdzdHRsghc/U8laD6nHnTgt0ctKeAJjEq338nlgoOmYurVbHe1Crjy3FsM134onWw0bLDmgNB5f7pecTHt57NTQtEpv3dakOmxO8/r3UfGtZoRpjWjdws01El5sw624jYHZGJiNgdkYmI2BWffaxsCsn21jYN+XkFrZfK2yaWNgNgZmY2A2BvZ6YmCVfPpqCKwejlh4AFCNhqwV6SrjNk92Vxsg4UnV8mzhG454FRjWQ19FRu56uWhldvE6cS6dgGzI+rDafIirKtnDenqd8bwXiiyoQFZbdSX/lMjfuzbQtSzQ9ScFqxqxqceKrgkuNZLU3eVp7D2P3SYs5ZDvT0Nvu7/91sSi2jB+XKCoZL7h6eGTYkBr5apHc8/83J6pXg0SPTIoVGDwLBmjNOEjsN0X4dCvBBoezYMQPE5PmNWNlmhfciV35uDDdi7DBHihpoDyddbwQZdo+nytJZpeb9CQN32M4nvC37N57kA0XhYsItB8w/GnkmThnQPO33zR8AgSNdG7d4sXE+20ans9oenFQ0ZMuraEpwyUFOutRbZi3SfSzRBiqAFri+NYGfp/kSErMd+QxDwQXalN+S1EMmywwgYrXm2wwugJE7PQfoFrjGdqlMLTnGGjBxoJIMX165qZH+XF+TpusLlcN9GNjYCnULBjeHrokp9ZkAr/CquGaNA2v95PLrDJT+/mNf8arnG5I9Y1ftmucZWmLR5ykQ+xW8mH2Nnu9ftu2QaFHfB7r99/tFd8kpjT0TzxLbxjcJWLVIqCB+ESgrzT6OLtxFrVFwifkFioyrPNCsfkElVdg2yYqyHQF5oHyqunDvkgVHlyV6YyAlnKY9PKoxLxKZDkkgRgEUQ8BhsASgWlbApvPY2rXne222j/tAyRfGfq93VrjXi+XJKKIjw6JtecLqEF8GN5wVUtA0Iuyru+C2fTJcPfPtbU4sHeaSW+ohXsAU0DFtsUlu/udtymsLz6a3LXGWvpH0lFFfdHnEZraKpSazQ1NiobdguP8Lkih8NjMOQC6EDRCHqsLDeBy11z/IDqa3GNVQK+gGxd2BeaQXvfSPDjmZQQ7BjxoMVz/e0j0V3QZz98t5Lew/eHw8OTj7+cvPvw4af9fwyPT4/284Uk81OmKuu1L6a7VdZcueDNrzRM//FJxb/sHx923/90/G7/w0F3fHp7NuF7nw0E7/c/ay9o2mpdwaq6DQlgyL9y2Ux6jErlbS+NHy3s7LJNKOBawvkrFB7C+REpejg8brJ9JVy2Ps8vjdA9jbvr4b+2RdZi6hyVNo5eN0DYWHw1G//2cfTz/vBs/2x0fvJ+/8Po5/13Zyd770eox/7NnFTg/nV8Ug/r6yvLUUt0fzWvLLkrfTCe+JQb2iZ0K2KXa1zPLuBapcKSLo+ObQJXQ3xzJcnvino/rYWbHGPwj3iAXcrbugvHhUJNAJb5sggVmLm5x/CAsi4n9niwiq1hzgpbtwSn2xm7vE98IH5b4vNkLtdAtUV0C2Y3Srewdp/E6eZcehZ7vgUuw+MLq6zD4DX8Wri71g7qsrEfLZcqe6c1UFYSfE77bzt+531ilOR3waKNPX0mNh3irOcwqc23/jY8SutIvlpH0vqM1mf8vn1G6yFaD7HhIVpH0DqC35sjaF0+6/K9GJfvgUSz+nSrXvIV9+aVBLPKaz7J4krugnle8n2/3rM5bzbnzea81XLevi7brVBG1XS3Vbnlto73q8pfszWMbA0jW8PIhutfTrjeJoC9+ri9vVN76UJqZfO1yqatYWRrGNkQiQ2RvJ4aRraO90uualR7xvmIYJYt2m0DXjbgZQNeNuBlfWkb8LJOtQ14WSG1AS8rmzbgZQNeNuBlA16vOOBli3a/nPBWe9HuNeJctlD3KwxuvYRqZLZQty3UbYsM20Ldr6XssC3U/QJkyErMNyQxtlC3DVDYAMV3EqBof7T0pxXqXivDwxbntu7wS3GHbXFuW5zbFue2qSrfxS24TVV59dfhtji3LbT2Ggut2eLc7arLll6zxbltTbYXVQbLFue2ldpeOIva4tzWo7R51a/bkbQ+o/UZv2+f0XqI1kO0xbmtI/idO4LW5bMu34tx+WxxbpvnZvPcbJ7bN1uc+wEFtjDr/b0GNX9MN7hz+r3t9lMI9MCMSjJmLDb5cuANmQRh/RwEnGrc/G5ulkl/xiLaoolwPlNoBdPIlCAsnlFINsPEMZIyiXlEJicsh9LF+kb5KJOzoxshfGFUFSVQTmUNddHiKwO2h+8eyOpKqALWcwZOGEajzlbtSINP273+9n/s7DyQZLd6kVXlhh5KUAMsKl/WXmmtKkFoWrAYMtlaNvAwDoAPmIT0q0KMgeBcEjOqXUMU1tTClCZfkGt6m34wpwtJfpXXmcA8XC+tn2oarSRS6FVLNFui5e05Zc+p13FOIVNGSduGHnGpYGHTQRuIJZaguTPJysfRAYPUXDgU/pNIxshl97rfLTd6lKRMMiUvCY+lYhRljysWtVmpZlG9ZvWMMEcBZhAXvYxKUCyC7F9WpArnp0rK8GDQfW4VWN+qUiKjQw4VoaEUKA+Ux5Jc05SLTBZaxjAUU4rHU0lk5s/w4GFRAuhlKXuOg0ajs/qsSSIFZ81aZ4qZr/583ZyXl7pxBLMASQjVh+7j86CXHDPLkHn8sVFS+YknRzErN2dInW9yIpuvJZ8tnpZtMnWKwzQEuQQYl6cuecbY2un12mC8piEPiooCYxHMn25b7acpVpxUWRrnKdC0mLvgcm4WrXiBIiXXXIS4W3p2gn2aunIJj2NVyhGD5VvEGjhFt2kRTZkWV5EfyH5e1tLUWDAQf139miIzumylaUrnVfWTU8n0Xfq+DZzsh+W4KAvR1F6QEM/CpHisYE4oErBxNiU30P0GdNNNKmpHYdXPz8PDNDA2PBK74K03i8CdQgK7lHDSkECgAUTDUNxoGx5t5bw64JNtea3nQ03ewlI36jo2n30R6NqkZpsf5qcq7VqKBeTHo24aAyo3s7nO4ccVhe9naVrTGI+mfdU0PozxFA8xtAwPXmCVzgtkj5Ip7sG/nLA09mRw5aG94OmjA5wUuIusNEdMzUSQt2sfDzdAsRgZCFMh8LLGufUMfCzI75c94+eaO+bfQfUWYV/HBU6UILLOF4j75tO0AVfMoYFs7V4FtuxvgAZPWHeAQ1NgdC2h8C7CAbvEoK7JqLHK0rDxyMJ45R0ucDowy1Ku5ti7ci8z+B3ROYFf+vhbpfNHEBnNwHmHMuJN8UMz4q37lQHfnB/A/A7FDc7lh5zFaq9ypwzTgt3+qY5GpmYVPLp6yW4eR5W+SBA4zShVpEpliR9BYuJqEoPhkUpuwb3rgKLIqwqJYL5f1uUy3duK5i7KysM1aotXU6tqv5o3TY8surrwfqZIqjER+kaqSzUKvCoQ26xMtuhnNjxCXdus4cr1mh6X7tXmIemWFa6MCcvm3NhWL5zHE1FVkrlqOtv/eI53steL/Ju3ybwKEqFEpbQIOqM3ad4ZgUhioPmGjfM8mvLgkZ2L+LPIUElOeBzgez0xISJL9QJUkct2iQUh/y9gzfwx139fkvNZvXKvxHi3yFSI77uM0ZHb/jIbS/3Q0/hfXBeKOiueRJpmPNJgpoBJPo21Ih+DJ60yjn4cdJgIPHPhCT2NA5oGuIeTLCzd085FfBF7CCYeW7EioJ3QZZRka+u6v7XVgR6XVcQuzdTwPH/GWUpTf8Z9WpnXNe/fQnHDUp9KDdBsnswYbjEhv4iUmFPOJZddX6SJSGl3AD9kmN7QDYSfQUkdedm5ANVhIHMGTr/T6/RAPFgayZNJru5LucupAhIXsikNu9jVExPP3LB28RgKxRSZra6JA+HLTnUKHk3zKUc3Ig0iml51EjypaajO2a0qGdXB4y+g6dXXzD4K+XSmVq2BNrW+ZGMR5bDChLFgTP2r/63MjkoSTqOIxlWtWDw+NkWa6/5WYZWh/QGiwwgcyWiJtAWfJNk4OjqWm8CCxfGBYnbGVMrZNQ3JMJsCOVlADgofnWycDQ82kTsweEr29GPnvIjb8LRWZt48esZ3kXnBM1PJrdDg5s8WuKb+B776029JvZmQsHwhjR1yAlJlIstu5e3xHATevECFIOJ4rpPhTLBvXonnVJwZFJUcg3K/jo6lkYfWv79AdIjLjNXvjEmUhYonYb22m66+H/AJgomOIwHpkjD2JH9vbHb/R0nGGQ+Vx2MNAprGiJi4ic1WwsBPMItGNd9foNvwwEWa6OB3LoxEZlFEU/4H4g7qY2vLHLolmIOtLWj54YcfDMa63/k8YYOtLXK5oPgvoVkzEnQ4OD33doSL/+9CExgI0FBNeoU5Ly8vwQC4iO9ApxR5FO1/DMPVfYCOuk8096aJ2i1aEHvdBOXky4Ys5fpzVfPrFZYd6sVYONphMEJYhzFPu3WLJp0IAG3yyut0OhcONN1fxPeIa31T6+UEyy3e2hqQhdKIxf5i62LNQSiDiD8sVkrczCkAQ+sU2Nr6IBQu+EvbH5xAfyMQ8Y+q8CykShmNeDxdi3yV0o5t1BPbbbQrsXuxBGyam4+UD2OB7uBLe7f8ddebUX6V1b5oE3WZEFXfTj+LQOmV28hiYDImM4CGZvPb/tvVZFr68PwZKERjVaGSmc4Y17UZCyA8Y4XoKfq9/huv9xevt72M0JW/oPMEJfims6u14A7ZwKm8gCWhmLMgt9NK6YQxtfRzspHnaj8LZSmuP03UzjKFubOckJ9PPp15Z/sfTz6d7e3nkoczIlX1h65GDm0+PeLd/unRyefj/Q/nC/L5P4Cc2YS/QrEJr9f3tncXRH8Fc+SZ9QVz5B8GukyZLiJQtKK/rxvhFDUbgn1aaW/yyMoMsg1dP3SzwQhFrdAGAyytN2kqUlYJ3ywgVlZWW037SuHT1uMRl2yltwZmWwO3nPCVTCtvvVKUSPjTs5Nf9/fO24tRdpNsHHI5Y6ns6om6+sDp1qEaGCON7Wlzdh2eaEnANH3y7ETd767T6bSVMYOEzCX8YITT2IB7pbg9Ti9AQpVk4SS3ZkXVUHWLmyJY5kxkiqWdFuVfDnpO3a+t7DCM2jgmDGlEIWrSGy9nl2gOwwtP8886nA2k5kuDWmWYE8Ig3SSkPNblarBmjo7p/e5gHAKjel9cB2gBH+/uIKTwKQ3v7+Ez+goQoINoYcp1FR4I3hWvb6AGI5fmdsr8+aSlzlgeTsC72IheQZxjDIFdNpmAcQVVpfQmsVrc18QZymo3EioaBXj5oniEEYnOMrR1FNTE2LxzHjGRqUr4U1e5+vfjEPEw5F+NiHeM0zTx0X2N3vDOa0HmxYuKcgTkdyZqZd9qmPj05OO54zp49wYBOxHAmJTeQJ4pvdH1m0Siw4SDO/3tzgmN7+0MHD0n/Ps/mZMsxQ== +api: eJztXe9SHDmSfxVFzYcBoqqBNuys+25vrwczXsZgCMA7OzE4aHWXultLValWUgE9BBH3EPeE9yQXmVL97eqmwfYONvIXQ0klZSpTqcxfpZI7T9OJ8nq/eYdUThg5pMkkoxNGjkTIIuV99L3bQGVpKqRmYUBTHlyxWaBnKYOXDpKQ3Z4xec1HzPO9EyaVSGgEr4VMjSRPNReJ1/MOEs0mkmpG2K1mMqERaZ2QrB0eHql1whMtyN/ZSFNJyVhIcsq05OyaRqSfTWKWaBaStyxhksIMZO20/3ad0CQkoynVHbInkoSNNDlOWdI/IP2Tg2Ak4pRqPowYic1cYylikkpxzUMmFYn4FSP9RE+lSPnIJ/3fM8l88laIScR8IiQZZUqLOJgKBdOzJEwFT7TqkONkxMhIMqpZ6BPJxkwyeDQTWf4WOTw8IsMZSWjMCE/IvzImZ2RSspBSSWOmmVSdiyQoOCjX6/BIkUzxZGK5qnLUPzmAZYqptu+O+SSTjMRZpHkaMZy9ZBVWNORjJFOTTDEyooopePf4mknJQ5av/veKDDMe6YAnhoQbrqeGMXGT2KWEFz/AKIbVfH1Bbv23PsrER+mEYpSB9IjK4phK/jvyfpFcJBsb+7c0BlILMnsbG9Dy3XffWY5Nv/NZynobG2QgUpZQXlmGATQbRYIOb0/Ogx3h4/+70NTP9BQafmRUMkm0uGI492Aw+KcCMu4uEkIuPFDvC69HLry5KS483/QBOZo+8SyYpHq3aEHuTdMk1UHZkEluHk+1TlVvc5OmvGNm6IxEvHm9vQkrtQmzRQwWRhXv0kxP4WWksE7jELmxPbEJ+cI2dRV0Op0LD5ruL5J75LW+qOSUqVQkiinQonKJNzZ6xLIv8x7l+mLrdpBKds3ZjQ8/xzzhPhGv8AeyJhlVIgF1NeqwnksAXq1LYGPjvdA44U9CkuaLRE+pJqFIvge1QVNElJaMxjyZrCS+kv5W6YntNtmV3D1bARbGiuxFNAvZI/fHCF8KdgKRZsovf90NppRfZbUnCsyRXrSJjFGYMhoy+Vk2lJm5TSyWJkMPktbd6u5uve6+Xi4mmq9VLqmYKUUn7HNIiCa6IiU7nFkNVRuxICK4ZlKB5cMhulvdV8HWn4Kt7UWChqPo6UbwVWfXWMEdsoZDBSFLIzFjIbF0lLsT3tkzZtxwQNbsqb/+WSRLcf5JqncWGcydxYL89fjDaXC6f3b84XRvP995OCJK1TzYNMzBMaPMG2/2Tw6Pfz3af38+tz//CszZRfhLd6u7E2x1g+3dua2/RDms2pfKkT+ARrt2ldZrGmX2TThF7YJgn1bZG/+D/J1JzW5J/4CsvWVgYdfJ//3P/xLrfJH+aCSyRDeU4xpfCihvKMUERwi6HWBU+NXfxxFV06oy5DPQcobFSlBMuOCcxHlaBd+kYKEOZCoYsURLGm0HlKcR1eD4dCa4TDTlKt/gqRT/ZKNcB05Oj3/e3zvfjMQIfQ5VHWgVMSuzDpf5OpQSvWKzS1wP7HfX6XRUfc3Iz2fH7zudzv1yEfcPyJnOQi7qIgbf7h2bfQHRwshXZuQ/VKS5F3zNIhsOzItzyDRdRUw05Zf1DVc8KbacGTwo9uacUM6njAwyyQdkzFkUEq7IOGK36GqDSGYiIyOa5K4qoWRIFSMfTg8gTKBknEUR+XB6SEYi5Sw0kYaVcihG6iJZ48koysLCyyEp1VN0kQc9uxxsTySaJXpAVDYe89v1DgG61ExpFpMEvP2I/84U4ZrQTIuYaj6iUTTr5Hpl7bgNF/ZKy/y4I6SfzIhi0TgPfEQ1pvGJykZTQhVOcyoyzWSnxU8oX/qcboIJyKIoblPAKKIxDV4FP2wNF+tePIPXgzyY+1J+nKXUPmkonOcDwyYOPAi9nmdCycPDI8/3yrjQ6/1253EIp80Sej6uhtfzTtm/MqZ0cM5jJjLtNcNv0BvY7Dc8ikhMr1BjmdKEjcfgTmtBLK+M6Ckj0owHcSr8qlI24mNQZMVGIgkVSFPzmBGR6Y7ne2o0ZTH1eneeQQY8DvE+Ugg2IM5ir7d973swLpcs9HpjGil276/GT3DEo4irL8dWjON/Cm/3Hw13TOkfRTiD7iOzfeFHmqYRN+fOJmg8PCvHrTNleUfiUQ0IbcVKyMggBIAdQKRdGlEyoikd8ohrzhSwYAkXQzgPYRU5TBjzhGohgYJUgv7p2Xuz/Njf92KapjyZQIe5/bgS3UkLUvEAK23k0ig6HqPy12fcE3EMzIOJNmjD/HRgUWsBLiIhVlKti2PXgjMFPBqFbM4M6wSMlkgP6NPh4RGYaK6MQg4ZICshaJvQUyZLwIisIdaEENA6uZmyxAI7Gl7GYQ7G5heEi0YiGUd8pC34QskkEkMDCZE1iv9hjMwVSSVosUF/QtMdSMuhtNxdWvfhcQJHB9IqctQHx4EBYTlpFJEMg6TKQiktQSl8jxm8BgSBMRl51fmBnGFcZvbGIUsmeur1tkGVbvPfuru7942N3FzeN+VvRIyLtW2hIWRjmkXa63lebZLtra0t30uyKKKorGhuqiSj6WiEzxUGzKHs3fvmPJknEd43B3didQFQtGK9QdHWWGfSIRjRFKF01ydMj9atmnBVaEj+kix3kbFYsdB19G65KOw8r4If8hAZw+Pu9mtgJpO8nRXwXHL1RNEXTICbM8xjT/RukhlpII/5m+stpBlU0uvh3FVKlwbnzeMXiIeTt2KGS2tW4wbcDpZoa21JvhloYScp4phPsoLmgH+Yhho0QmsEzRkYM1JTJkeZ0rDspVOBtA+bAy/dEpbc6qLbR/e+8U3alaE2i9VsXLkmJ4vVkA5HIRt38J93Xzv5f8sX1lCAXxiujXk6oYBH4+eIU1T8vmGx2Kj4+0ff01zjNGah8em9n3sRD4qnBm8E4LmHnyqlPOTHdZobeKmUCt+nsjXMoxpL82Ky8EzV/hiTc5tHNm37sZyl6AYTISqxdB7sYSdaOq4BxJaKvuDZTPtJOvA3HMvoAEwnEma9BbdJn98mdXvzpe7Njy2zVbpWBizWVs0z3Q9DDj/SiPzt/PzELoAC3g2iYp2w3MPPHSnwoPonB63hRTHkSYte5asIq6WZ0pfo9V1Wo/I5GpMZKQetfNg13jWVJhKFlSh8LaAvzKQJAhiBmQiAOasTrGVW9XDvwB2+xO2rvN7udhcYqAaG83TvVVrB726POx+OmXhMJ+zSfqqbn+aXKcNwSBcutO2qCL5JeJJmtdhsKETEaAKKgUH1rb6MeMxbxj6itxCRE9uN3PAkFDdE8d/xo7tZjsrIZSxf+Kk80a+6xviK6BJkYL2/lbmAFzfHWWJicztCOztKy2ykIVa7FJkGth81U/k6Ma9XEgraJ7SKpy6liNgljTC5oD0Km583fxnm5SNNYAxSGQOWeCQS+JxiMPYO+QWiTFRNaFFslCFCkX98y8M7BYYSh8tD54kUWcpCosUEyWhj5740H4eHR1X1nTNuGMebAKhidExUc3h4ZMGLH6lirYfU406cFvSyAk8gJtGawpEDA83A1K99ADQh5NJzax6u+Voi2SpssOCAMnx8vF9wMu3l2KmVaVXepq0pdVicZqbAo/CtJsK0Alo3l+SAghfbkEDhMDCHgTkMzGFgDgNz4bXDwFyc7TCwb2uTur35Uvemw8AcBuYwMIeBvRwMrHL1ogqB1eGIubsiVTRkJaSrxG2eHK42SMKTquWGy1eMeBUc1qGvIsF3tVy0MhF9FZzLJDJbsT5sNh/Sqkoyshne5NTuRSILK5TVZl2qPyXz974DuhYBXV8IrGpgU4/duhZcaqSZ+4tT4LcCdpsyyeFqCI2C7e72a4tFtXG8ECgqcr1zx8WqG/hW5NdGaviH0wMFWnFNJReZsrc0FaaR6zKdGwVT5HRDS1xP6vbxwEEYBuGnMmvcJzHTUxHaNHG8qWpul9aulEJOdrFDNjbIGlDfvKgA0cB6j5xY4oFAe42iuDhRsN8h9sZmjwy+5OWMgaG9eUkiZ8FeYmgj/W2ZEltYKei+jINV7yIgVT+ZPP8DtSjRn9BICXIj5FUh8FXT/Qu7YuQOoVoSEsnwNm5dN8y0MPgAR7fXFjoXbbHvg2Dk42UYz4KmltQkWEUuH4lUFhr7WdKY7VWQFjoqSlSh5yEKHnd4FRdRSFNvl4IVpcnMyYflXMQJGKjaqZjPswIwssD9yOda4H6YBerzZuBbPE/5OzbLo9rGNap5Bs5aTNIXE8ncpS6yyCquKKIme/d+cT2sXVZtV8WMvHjEiL1DoOB+DSXFfCuJrZj3iXKzgrA3C9vARbeH/pA95HbMV7RjHoD8akN+DfCaQ9AcgvZiETRrJyyQZoJV3zrS1BqFpyE01g40spKKnIAV05HKbI5VsBmb8WEht7WQSyg41D858MmPLJRidIWxpCFt/dPBm4Kb/PRu5p6sgNeUK+LwmueN11Rl2gLbFEk6u5UknZ3trW7XL9ugMA0+3+p2Hw3VHKf2dLT3zovcnip0U+ogojdvDLv4yWyl6jGEj0kidOUucUVj8h1VnYOs2e+VYC+MDpTfQzvkvdDlyV0Zym7Icj82vTyqkJ+CSa5ICB5BzJMcl5BsAheQbaheD7bbZP+0tKV8ZeofkVd64/MlOFUM4eERueZ0gSxAH8uvrtUyRuSi/AB94a37pP/LWc0svt07qSDOxsC+pTJkicur+uZSNlxe1YvP3fC9odn9l0oD8HrJabyCpSqtRtNio7Fht1AZgmty0D8CRy6EDhSdoMfu5SZxeWiOD9B8zc+xbIPPMVvf7HPNYL1vFMTxTCkAOy552BK5/nJGTBeM2Q/eLJV3/91B/+D47KfjN+/f/7D/j/7RyeF+PpFiI8l0Zb72yUy3ypxLJ7z5mUbyHx908tP+0cHmux+O3uy/f7s5PLk9HfO9Xy0F7/Z/NVHQpNW7gllNGwrAin/ptJkKGFU62F6IH82t7KJFKOhaoPlLDB7SeYYSPegfNdW+ApetrvMLEbqnaXcd/mubZCWlzllp0+hVAcLG5MvV+Jezyx/3+6f7p5fnx+/231/+uP/m9Hjv3SXasX+zJhW8f5qe1GF98x39sgXdX64rCz7gP4gnPiVtoEndEuxyhZyBOV6rUljQ5dHYJmg14JtLRX5XFKFqrVLnWYf/kofYpfxad+H5UJUOyLJP5qkCNzePGB4w1uXAAQ+XqTWMWVHrFnC6XbHL74kP4LclP0/WckNUG6JbKLs1uoW3+yRNt+fSZ/HnW+iyOj43yyoKXuOvRbtr7WAuG+vR8lFl76RGylKBz2j3dWfUeZdaI/lNqGhjTT+TmvZx1HMY1F0C+DoiShdIvthA0sWMLmb8tmNGFyG6CLERIbpA0AWC31og6EI+F/I9m5DvgUSz+nDLrpcW380rCWaVK6aKJZXcBXvn6du+Uupy3lzOm8t5q+W8fVq2W2GMquluy3LLXXH5F5W/5gprucJarrCWg+ufD1zvEsBePG7vvqk9903q9uZL3ZuusJYrrOUgEgeRvJzCWq64/HMutVW7xvkIMMtVkneAlwO8HODlAC8XSzvAywXVDvBym9QBXm5vOsDLAV4O8HKA1wsGvFwl+ecDb7VXkl8B53LV418guPUcqpG56vGueryrHu+qx7vq8V9z5WtXPf6Ba4LPuxa2qx7/DPaQ2zFf0Y5x1eMdauZQs28ENWu/SffFqsevlHbkKsY7jOa5YDSuYryrGO8qxrv8qW8iNcPlT734HA1XMd5V/3uJ1f9cxfh20+XqAbqK8a5Q4LOqzeYqxrvygc9cRV3FeBdRumT/lx1IupjRxYzfdszoIkQXIbqK8S4Q/MYDQRfyuZDv2YR8rmK8y3NzeW4uz+2rrRj/gAGbG/X+3pCa3/Ds3Xndre32UwjswJQqMmQssflyEA3ZBGFzHQSCalz8zdwtU6Mpi2mLJcLxbPUfTCPTgrBkSiHZzFy3kkxhHpHNCcup9PHiTv6WzdkxjQBfWFNFCdT4WcFctMTKwO3BmweyulKqQfW8nhdF8WVno3akwaPtre72n3d2HkiyWz7JshpYDyWoAReVJyvPtFLpKnQtWAKZbC0LeJCEoAdMQfpVsY1B4FwR+1a7hSi8qbkhbb4gN/K2/WBMH5L8KleGQXm4mdrcH7ZWSUjoVUs0W2Dl3TnlzqmXcU75nrhJmFRTnj5yF9v7uCEZzsy1Vpt4S9YG+Y+DdcjxsydF3s8kkjJJ1gb5j4OWhFQwLlkMZ1g+Ghw19gU40kp7VelQ4fO44MvEQHHapjWHXGlYXdvBeMGlKOF4yhQryxKEDPKPgZ//IIoxMti87m6W2nSZSqaYVgPCE6UZRQPDNYvbXHE7qZmzehDa8w7TpIte1u5pFgO/rMiHzo9OyfD0M31uNYQYulKcpkMOtLk8C5ue8kQVN6hzU2p3DdOaJxNFVDaa4unK4hTYyyT7HKepYWf5gZrGGg7UlQ5OO169cIR1Cgam8RJGAZEQajyLxyd7LzhLFzHz+LOxlPITj8diVG4Pyrre5EK2T0s9m3cJ2gzHCb5mKMh3gI3r6ubFepQ7W1ttNF7TiIdFLY+hCGdPdyD3pcRarzqTSZ7nTYuxCy3ndtJKqCskueYiwtUyoxPs0zwQFug43gW/ZDB9y7YGTTFtZotKZraryL2OUV5Q1lY3sRR/WuWoIv27bKVS0lnV/ORSsn0XXuIDJOHhfVwUZGlaL8j6Z1Fa3MiwxzAJ2TCbkBvofgO26UaK2nlfBTNyDJyGNlBBYRe69WqeuBPI0lcKjlMSCvTyaBSJG3P8mCIPti7nkwMWY+cjI94iHLHmOrGPRyI0VYHtMj+sT1XZtZTpyH0A0zQEVm6m5iw1M4rRKJOyZjEeLfvqeXqQoKsSIX4Ot3pgls4zVI9SKe4hiB4zmQQqvArQKQrM0QGRGHxwrTSb6h55u3FPcAE0S1CBMN8Dv0h5t4Glj4X5R/TABvP2Q/pvYHoLbNvzQRMVbFnvI4Db+TBtxBVjGCJbu1eJLftboiHcNx3g0BQIIUIhDK/ngV9iWTdiNFxlMmrcJLHQQ4cLHA58T8n1DHtXPj71fkN2juGXLv5W6XwGW8YocN6hhPUpPmjC+qZfiWrn+gAxRiRucKxRxFmi9yofzmFYCE4+1NnI9LTCx6aZcjMHi9VIpEicUZQqU6WxxIewY5JqpobVkUoCxb3vgaHI63mJcLZfVsSz3dvKVc/vlYerQxdXw5ZVXbYXtx5Z7njuklCROWQ/QzTyeapQ9zK0uVkTcD6YboS9pqpgI17daoaVpldbGGhalsRrFnvOtbGtUj9PxqJqJHPTdLp/do4fnq/n9TdvKwIhQomWtEDWMWS2l6mwNg2g6TdsmCcLlQcP1BLKixyNeRLipUQxJiKTZgKqy2o69R0Lm/w/QTXzG2v/NSDn03rNbIWgvsh0hJfYrNOR+/4qGypzm9UGmdyUaDst7n3aZjzSYKSQKT5JjCEfAlygM47BKnQYCzxzoU4ATUIqQ1zDcRaVMThWTgqQTDy2Ek3AOmFcrMjGxnV3Y6MDPQZVxgZ2aKhBMOVMUjmaQq2eclzfXvKLxA2TIyhIBARNZ+mU4RIT8pOQxJ5yPhlsjoRMhaSbPfghwxyOzVCMMihmpQam1o+lzOt53c5WZwu2B5OxOh7n5r7cd7lUYMdFbEKjTewaiHFgPyNv4jEUiQkqW90SQ22jTnUIHk/yIS9vhAxjKq86KZ7UNNLn7FaXiurh8RdSefUpo19GfDLVy+ZAn9p8SWQx5TDDmLFwSEdX/10ZHY0knEYxTapWsbhhbcuj1+OtwitD/wO2DiNwJKMn0oawKbJ2eHik1kEFi+MDt9kp05KzaxqRfjYBcbKwKF0lErJ22n+7jtqBCDHZMze68/KJ/ZPaH3iwN7vx8mdeatDWUCwsuP2DIb4tcoJXGw1WEUyFgumL3dghx7CrLCjiVy5Yz2DD22u2gLEMZybjzyKaswpoVS9EFhQclOt1eKTsfmj9yye2app911ymJnEWaZ5G9aqK5u9ehHyMZGLgSGB3KXj3OL9UbVf/e0WwmlbAE0MCusbImLhJ7FLCix9UDgQV6wty67/1USYG4c83I1FZHFPJf0feTfEye+iWZPY2NqDlu+++sxybfuezlPU2NshgzvAPoNkoEnR4e3Ie7Agf/9+FJnAQoKGa2QtjDgYDcAAukjuwKUWySPufofFNH5Cj6RPPgkmqd4sW5N40wR9yKBsyyc3jquU3Myw61It34WiHl5HCOo15brFfNJlsB2hTV0Gn07nwoOn+IrlHXuuLWi/kWS7xxkaPzBUlLdYXW+erfUIBUvxhvkbpei4BeLUugY2N90LjhD+1/akXjDdCkXyvi8hCaclozJPJSuKrFFVtk57YbpNdyd2zFWDT3Xzk/rAe6A6WE/DLX3eDKeVXWe2JcVEXbaLqBfHPsqHMzG1isTRZlxlIQ7f5dff1cjEtvF3/GSREE12Rkh3OOte1EQsiAuuFmCG6W91Xwdafgq3tRYKu/O2qJxjBV51dYwV3yBoOFYQsjcSMhbmfVu5OeKeWY0/W8oT0zyJZivNPUr2zyGDuLBYkFsI83T87/nC6t5/vPBwRpWoebBrm0Oczb7zZPzk8/vVo//353P78KzBnF+EvUFEj2OoG27tzW3+JcuTXBwrlyB/0TC02UymhaMV43zTCKWoXBPu0yt4my5VpcmumlOo6VsvM65rZBLyGchSVextKsbD6q60PW1WGRuW05UpQqT3cek7iPK2Cb1KwUAe+RPnUVcTckjhq++RZlabfXafTaSu/Bomky0VclG2tixh8u3ds9gVEaxOw/3CRrlpPdhUxFXnuhXiKJ8WWM4OXVUzmhAKR7CCT3BaJhSh2HLFbdLVBJLNGAWNa1juGDFMyNjVvDxeVvL1I1sxfnii8nBWK3WIl9aIYclEHWUGqRK3UbSfXK2vHbbiwV1rmxx0hkGCoWDTOAx9RjWn84qMiTHMqMs1kp8VPKF/6nG6CCciiKG5TwCiiMQWAbWu4WPfiGbxegBJfyo+zlNonDYUrEXFAzDbTiPLElG/CGlIG/v3NQ8gKAeCPvgeygId3d6B6H2R0fw+PMawELBeAZclNVSrAeYvbaFCTlCv7IdP+jbuFcXuOPGFuQkyvUNXhGwAbj8EPhyprZpFY7ROBhaTK6k8KKnyF+J1O8xjBq84itg1gbuHY4JzHTGS6gpSbqm//fh5iHkX8kxkJjnCYJj+mr93ywXnte8T8N63yDch3TvXSvtUvCifHZ+ee7+FnWsB2RQjvSHoDedf0xtQzE6lBlHt35tmdl9tlr+eZMeHf/wMhzNUC sidebar_class_name: "post api-method" info_path: docs/rest-api/vectara-rest-api-v-2 custom_edit_url: null @@ -125,18 +125,18 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme } ``` -### Google Vertex AI (Gemini) +### Google Vertex AI (Gemini) — Service Account **Type:** `vertex-ai` **Models:** gemini-2.5-pro, gemini-2.5-flash -**Auth:** Service account or API key +**Auth:** Service account ```json { "type": "vertex-ai", "name": "my-gemini", - "model": "gemini-1.5-pro", - "uri": "https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR-PROJECT/locations/us-central1/publishers/google/models/gemini-1.5-pro:generateContent", + "model": "gemini-2.5-flash", + "uri": "https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR-PROJECT/locations/us-central1", "auth": { "type": "service_account", "key_json": "{...service account JSON...}" @@ -144,6 +144,28 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme } ``` +### Google AI Studio (Gemini) — API Key + +**Type:** `vertex-ai` +**Models:** gemini-2.5-pro, gemini-2.5-flash +**Auth:** API key + +```json +{ + "type": "vertex-ai", + "name": "my-gemini", + "model": "gemini-2.5-flash", + "uri": "https://generativelanguage.googleapis.com/v1beta", + "auth": { + "type": "api_key", + "api_key": "your-google-api-key" + } +} +``` + +The `uri` field is flexible — you can provide a base URI or a full URL copied from Google docs +(including model path and `:generateContent` suffix). The system normalizes it automatically. + ### Custom OpenAI-Compatible **Type:** `openai-compatible` @@ -180,7 +202,7 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme @@ -188,7 +210,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 63b6b388e..bd5328719 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: 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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 @@ -70,7 +70,7 @@ These built-in tools operate on artifact references rather than file content, su int:\n return x + y\n```\n\n**Example: Returning a string**\n```python\ndef process(name: str) -> str:\n return f\"Hello, {name}!\"\n```\n\n**Example: Returning a boolean**\n```python\ndef process(value: int, threshold: int) -> bool:\n return value > threshold\n```\n\n**Example: Returning a list**\n```python\nfrom typing import List\n\ndef process(items: List[str]) -> List[str]:\n return sorted(items)\n```\n\n**Example: Returning an object (dict)**\n```python\ndef process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2), 'rating': 'high' if score > 100 else 'low'}\n```\n\nFor complex types, use the `typing` module:\n\n```python\nfrom typing import List, Dict\n\ndef process(items: List[str], config: Dict[str, float]) -> dict:\n count = len(items)\n multiplier = config.get('multiplier', 1.0)\n return {'count': count, 'adjusted': count * multiplier}\n```\n","type":"string","minLength":1,"maxLength":100000,"example":"def process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2)}\n"},"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":["type","name","title","description","code"],"x-vectaraParents":["CreateToolRequest"],"title":"CreateLambdaToolRequest"}}},"oneOf":[{"description":"Request to create a new lambda tool. Lambda tools are user-defined functions that run in a secure, sandboxed environment with Python 3.12.\n\nInput and output schemas are automatically discovered from function parameter type annotations in your code.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"name":{"description":"The unique name of the tool (used as the function identifier).","type":"string","minLength":1,"maxLength":50,"pattern":"^[a-zA-Z0-9_-]+$","example":"calculate_customer_score"},"title":{"description":"Human-readable title of the tool displayed in the UI.","type":"string","minLength":1,"maxLength":128,"example":"Customer Score Calculator"},"description":{"description":"A detailed description of what the function does, when to use it, and what it returns.","type":"string","minLength":1,"maxLength":5000,"example":"Calculate a customer score based on order history and revenue. Returns a score between 0-100."},"language":{"description":"The programming language. Currently only 'python' (Python 3.12) is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"code":{"description":"The Python 3.12 code for the function.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\n**Parameters**: Passed as keyword arguments matched to the function signature.\n\n**Return types**: Can return any JSON-serializable type (strings, numbers, booleans, lists, or objects).\n\n**Example: Returning a number**\n```python\ndef process(x: int, y: int) -> int:\n return x + y\n```\n\n**Example: Returning a string**\n```python\ndef process(name: str) -> str:\n return f\"Hello, {name}!\"\n```\n\n**Example: Returning a boolean**\n```python\ndef process(value: int, threshold: int) -> bool:\n return value > threshold\n```\n\n**Example: Returning a list**\n```python\nfrom typing import List\n\ndef process(items: List[str]) -> List[str]:\n return sorted(items)\n```\n\n**Example: Returning an object (dict)**\n```python\ndef process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2), 'rating': 'high' if score > 100 else 'low'}\n```\n\nFor complex types, use the `typing` module:\n\n```python\nfrom typing import List, Dict\n\ndef process(items: List[str], config: Dict[str, float]) -> dict:\n count = len(items)\n multiplier = config.get('multiplier', 1.0)\n return {'count': count, 'adjusted': count * multiplier}\n```\n","type":"string","minLength":1,"maxLength":100000,"example":"def process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2)}\n"},"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":["type","name","title","description","code"],"x-vectaraParents":["CreateToolRequest"],"title":"CreateLambdaToolRequest"}],"title":"CreateToolRequest"}}}}} + body={{"required":true,"content":{"application/json":{"schema":{"description":"Request to create a tool. Currently supports lambda tools for user-defined functions.","discriminator":{"propertyName":"type","mapping":{"lambda":{"description":"Request to create a new lambda tool. Lambda tools are user-defined functions that run in a secure, sandboxed environment with Python 3.12.\n\nInput and output schemas are automatically discovered from function parameter type annotations in your code.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"name":{"description":"The unique name of the tool (used as the function identifier).","type":"string","minLength":1,"maxLength":50,"pattern":"^[a-zA-Z0-9_-]+$","example":"calculate_customer_score"},"title":{"description":"Human-readable title of the tool displayed in the UI.","type":"string","minLength":1,"maxLength":128,"example":"Customer Score Calculator"},"description":{"description":"A detailed description of what the function does, when to use it, and what it returns.","type":"string","minLength":1,"maxLength":5000,"example":"Calculate a customer score based on order history and revenue. Returns a score between 0-100."},"language":{"description":"The programming language. Currently only 'python' (Python 3.12) is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"code":{"description":"The Python 3.12 code for the function.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\n**Parameters**: Passed as keyword arguments matched to the function signature.\n\n**Return types**: Can return any JSON-serializable type (strings, numbers, booleans, lists, or objects).\n\n**Parameter Descriptions**: Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported). These descriptions are automatically extracted and included in the input schema, giving agents better context about how to use each parameter.\n\n**Example with Google-style docstring:**\n```python\ndef process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n \"\"\"Calculate customer engagement score.\n\n Args:\n order_count: The number of orders placed by the customer.\n total_revenue: Total revenue in USD from the customer.\n days_active: Number of days the customer was active (default: 1).\n\n Returns:\n A dict with the calculated score.\n \"\"\"\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2)}\n```\n\nThis produces an input schema with descriptions:\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"order_count\": {\n \"type\": \"integer\",\n \"description\": \"The number of orders placed by the customer.\"\n },\n \"total_revenue\": {\n \"type\": \"number\",\n \"description\": \"Total revenue in USD from the customer.\"\n },\n \"days_active\": {\n \"type\": \"integer\",\n \"description\": \"Number of days the customer was active (default: 1).\"\n }\n },\n \"required\": [\"order_count\", \"total_revenue\"]\n}\n```\n\n**Example: Returning a number**\n```python\ndef process(x: int, y: int) -> int:\n return x + y\n```\n\n**Example: Returning a string**\n```python\ndef process(name: str) -> str:\n return f\"Hello, {name}!\"\n```\n\n**Example: Returning a boolean**\n```python\ndef process(value: int, threshold: int) -> bool:\n return value > threshold\n```\n\n**Example: Returning a list**\n```python\nfrom typing import List\n\ndef process(items: List[str]) -> List[str]:\n return sorted(items)\n```\n\n**Example: Returning an object (dict)**\n```python\ndef process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2), 'rating': 'high' if score > 100 else 'low'}\n```\n\nFor complex types, use the `typing` module:\n\n```python\nfrom typing import List\n\ndef process(items: List[str], count: int) -> dict:\n return {'total': len(items) * count}\n```\n\n**Object parameters must use TypedDict**: Bare `dict` and `Dict[K, V]` parameters are not supported and will be rejected during validation. All object-typed parameters must use `TypedDict` to define explicit fields. This ensures the agent receives a clear schema for each parameter.\n\n```python\nfrom typing import TypedDict, Optional\n\nclass Adjustment(TypedDict, total=False):\n monthly_premium: float\n target_income_age: int\n illustrated_rate: float\n\ndef process(client_id: str, adjustment: Adjustment) -> dict:\n return {\"client_id\": client_id, \"adjustment\": adjustment}\n```\n\nTypedDict supports inheritance, `Optional` fields, nested TypedDicts, and `total=False` to make all fields optional.\n","type":"string","minLength":1,"maxLength":100000,"example":"def process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2)}\n"},"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":["type","name","title","description","code"],"x-vectaraParents":["CreateToolRequest"],"title":"CreateLambdaToolRequest"}}},"oneOf":[{"description":"Request to create a new lambda tool. Lambda tools are user-defined functions that run in a secure, sandboxed environment with Python 3.12.\n\nInput and output schemas are automatically discovered from function parameter type annotations in your code.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"name":{"description":"The unique name of the tool (used as the function identifier).","type":"string","minLength":1,"maxLength":50,"pattern":"^[a-zA-Z0-9_-]+$","example":"calculate_customer_score"},"title":{"description":"Human-readable title of the tool displayed in the UI.","type":"string","minLength":1,"maxLength":128,"example":"Customer Score Calculator"},"description":{"description":"A detailed description of what the function does, when to use it, and what it returns.","type":"string","minLength":1,"maxLength":5000,"example":"Calculate a customer score based on order history and revenue. Returns a score between 0-100."},"language":{"description":"The programming language. Currently only 'python' (Python 3.12) is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"code":{"description":"The Python 3.12 code for the function.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\n**Parameters**: Passed as keyword arguments matched to the function signature.\n\n**Return types**: Can return any JSON-serializable type (strings, numbers, booleans, lists, or objects).\n\n**Parameter Descriptions**: Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported). These descriptions are automatically extracted and included in the input schema, giving agents better context about how to use each parameter.\n\n**Example with Google-style docstring:**\n```python\ndef process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n \"\"\"Calculate customer engagement score.\n\n Args:\n order_count: The number of orders placed by the customer.\n total_revenue: Total revenue in USD from the customer.\n days_active: Number of days the customer was active (default: 1).\n\n Returns:\n A dict with the calculated score.\n \"\"\"\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2)}\n```\n\nThis produces an input schema with descriptions:\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"order_count\": {\n \"type\": \"integer\",\n \"description\": \"The number of orders placed by the customer.\"\n },\n \"total_revenue\": {\n \"type\": \"number\",\n \"description\": \"Total revenue in USD from the customer.\"\n },\n \"days_active\": {\n \"type\": \"integer\",\n \"description\": \"Number of days the customer was active (default: 1).\"\n }\n },\n \"required\": [\"order_count\", \"total_revenue\"]\n}\n```\n\n**Example: Returning a number**\n```python\ndef process(x: int, y: int) -> int:\n return x + y\n```\n\n**Example: Returning a string**\n```python\ndef process(name: str) -> str:\n return f\"Hello, {name}!\"\n```\n\n**Example: Returning a boolean**\n```python\ndef process(value: int, threshold: int) -> bool:\n return value > threshold\n```\n\n**Example: Returning a list**\n```python\nfrom typing import List\n\ndef process(items: List[str]) -> List[str]:\n return sorted(items)\n```\n\n**Example: Returning an object (dict)**\n```python\ndef process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2), 'rating': 'high' if score > 100 else 'low'}\n```\n\nFor complex types, use the `typing` module:\n\n```python\nfrom typing import List\n\ndef process(items: List[str], count: int) -> dict:\n return {'total': len(items) * count}\n```\n\n**Object parameters must use TypedDict**: Bare `dict` and `Dict[K, V]` parameters are not supported and will be rejected during validation. All object-typed parameters must use `TypedDict` to define explicit fields. This ensures the agent receives a clear schema for each parameter.\n\n```python\nfrom typing import TypedDict, Optional\n\nclass Adjustment(TypedDict, total=False):\n monthly_premium: float\n target_income_age: int\n illustrated_rate: float\n\ndef process(client_id: str, adjustment: Adjustment) -> dict:\n return {\"client_id\": client_id, \"adjustment\": adjustment}\n```\n\nTypedDict supports inheritance, `Optional` fields, nested TypedDicts, and `total=False` to make all fields optional.\n","type":"string","minLength":1,"maxLength":100000,"example":"def process(order_count: int, total_revenue: float, days_active: int = 1) -> dict:\n score = (order_count * 10 + total_revenue * 0.1) / days_active\n return {'score': round(score, 2)}\n"},"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":["type","name","title","description","code"],"x-vectaraParents":["CreateToolRequest"],"title":"CreateLambdaToolRequest"}],"title":"CreateToolRequest"}}}}} > @@ -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","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"}}}}}} + 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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},"get_document_text":{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}],"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 7f107e40b..3d7cc2f96 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/delete-agent-event.api.mdx b/www/docs/rest-api/delete-agent-event.api.mdx new file mode 100644 index 000000000..aa87d5705 --- /dev/null +++ b/www/docs/rest-api/delete-agent-event.api.mdx @@ -0,0 +1,71 @@ +--- +id: delete-agent-event +title: "Delete event" +description: "Permanently delete an event from a session. Removes the event from both the metadata database and the encrypted event store." +sidebar_label: "Delete event" +hide_title: true +hide_table_of_contents: true +api: eJzFV21v2zYQ/isEsQ9bJllp0H2YMAwz1hQo2q1Fkg7YksA5kyeLtUSqfLHjGfrvw1GSLTcvaFE0y4fAko7He473PHfccg8Lx/NLPl2g9uwcnVNGO36d8NvUhaYx1qNMoVHpEjep3zRI1u/QOqOhIjuJTljVeGU0z+lLDRq1rzZMYoUeGWiGK/JeWFMzYK7bZMLOsDYrdMyXOLaYG1/GdzV6kOCB0b85OHIlO2st7KbxKPt1zhuLE55w06AFCuWV5DnvAojQTsmOJ7wBCzV6tIR6yxXFXCJItDzhGmrkOT/DjwGdTy9UjSbQqkOMFyWy6btXbK2qitWwRAZsjs4zLApjPfOGCVM3ETxFazt/TOn46BoUqlAomUNhtHTMWOZVjcwETyCcKLEGnm95l2+utMdFjLBWWtWh5vmzNuHkV1mUPC+gctgmn4cn/UNVlXLfDlYd/X8Nth2UBny5BwJ0krMlbvgYvLcBx44PUU1Z0OpjQLbEDfMleKYkak+ROirN6JMi6+Nx3iq9iJXiPVpycXmc/gzpv9P0n1l6/eN3XahvUC98yfNnCa/hdnj66TjheAuUJZ5zEZw3NdpZzyTaRfn4KRbla9zwh7D2LPkWaHcMfBrUM1HCHei90jyWgUjtmZKPwn84fsDV7FMMbXtNzlxjtENH60+On9/NYhSLXr7khLcJf36fWQSSDNlMqNQ7OdLGs8IELSnDwmhP2pNvOTRNpUTUp+yDIx/bB0/y1FpjmUUfrEbJ1iVqBgPnUDKLzgQrkEmDLu6It8qNK9nMP6CImmdJFr3qECt5dzOi/qsXTIAmR3PcR3+Y3zbhNToHi85V/xGsBSpS5bHu3vcn3dveddOLF7p4vg+FY4oDnYnlLEBTfMGhJEEqsWrYXyg8WGB9vTGJ87BgazJf03GsrdGLe8C0+5r80/iXBDlmnbf0Rx2wQKtTJ5fpwprQpAcyFI+aVHRkVqMvjRzsugLixA2Pumus1HSI0vnD/TXhK6jCJ32WODKsuy+q3aLD6O5dNo5yv66PlhjSGYwRRGbmPFudZNG/y7Y7MW6zngEu245Uq826GLLtQOSW9B/tami+wVbUrbxvXJ5l0KjJqjvJiTIxDociWOU30XraqNe4mQYK5DLm4y09nMSnkfE5Eaqrz8FgV6kG4otPO19nx0AIdI7Kqq8onvCiMuvoS1QKtf/dYtRTqLpCN0vU7w9hBF+OcGTdllm0jP3PNDG4rsTGoPZ8ii+JUPd189uhWmIBK12YMeUGLpydnl/Ebr66C3f45lhjzUpJavTeglT0HSoWW3I3RjE6eFYYy9Y4T2kGk2ykYm5ypf82IbKyUFoyqCqirQm22wA8u7n/gKmUfiEkqGVjlPa/3rBhAhleOQY2Tg6VIg3sB40VWGWCYy7MHYoYRicVysXVZ1igRS2Q9Z/j2EieJDq10J1yzJFwBuXVqpsrC1NVZk3zqQctwcqYwyJUzHkbhA8WJ1f6SqcxTBGsJW2hYqYtlGNHR6uTo6MJWdyMgd30rh0DViq0YEWpBIz8Jiw4pResMmu0Yhh0y01TYkwxYy+pt3QdNmE3mTC2MRaynH4ER3TLpBGhJsLdTK6o0vrIeM5PJseTY5I/tLV7W5yjXSmBo5odTkWYOqtwAVUWTVNTpK4zzqLOVWYRi+2QuNIINxm7UPVicDlbGytrsMtJE9szVP4Cb/2+UHnUWQl2+TXeZ5ValP6xPagLg4hdGGtQtEOBKOcglr+NvEdONcb5GmJ37jn3orvJYH+JOKDTdt/h/+/bT68fHm991lSgNCGP6dz2Cn7Jox50Gs4Tno9H6kHG6f3h+LnrdfluKLtOeGmcJ5fbLYX33lZtS68/BrQk2dfUW6yCOQnT5ZZL5ej3cF15JI3fn/Xz3g/sIVSDVOrNqIXxpG92e1TUJ55w43Hannjr3cm0120ydI0vy/u3vtjei6qL/u6dewfwy/L4JLfYzweyv2wf4Olsp0JgM8Z654JwMI29OH1zenHK2/Y/ntgl1Q== +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"; + + + + + + + + + + +Permanently delete an event from a session. Removes the event from both the metadata database and the encrypted event store. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/delete-agent-schedule.api.mdx b/www/docs/rest-api/delete-agent-schedule.api.mdx new file mode 100644 index 000000000..d39c1abe5 --- /dev/null +++ b/www/docs/rest-api/delete-agent-schedule.api.mdx @@ -0,0 +1,74 @@ +--- +id: delete-agent-schedule +title: "Delete agent schedule" +description: "Delete an agent schedule. This stops all future executions of the schedule." +sidebar_label: "Delete agent schedule" +hide_title: true +hide_table_of_contents: true +api: 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 +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"; + + + + + + + + + + +Delete an agent schedule. This stops all future executions of the schedule. + +Sessions that were previously created by this schedule are not deleted and remain accessible. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/get-agent-event.api.mdx b/www/docs/rest-api/get-agent-event.api.mdx index 8b67153a2..865af04ea 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-schedule.api.mdx b/www/docs/rest-api/get-agent-schedule.api.mdx new file mode 100644 index 000000000..9a9fda6db --- /dev/null +++ b/www/docs/rest-api/get-agent-schedule.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-agent-schedule +title: "Get agent schedule" +description: "Retrieve the full details of a specific agent schedule using its unique schedule key. The response includes the schedule's configuration, execution history, and timestamps." +sidebar_label: "Get agent schedule" +hide_title: true +hide_table_of_contents: true +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 +--- + +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"; + + + + + + + + + + +Retrieve the full details of a specific agent schedule using its unique schedule key. The response includes the schedule's configuration, execution history, and timestamps. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/get-agent-session.api.mdx b/www/docs/rest-api/get-agent-session.api.mdx index 7fbaf93c5..523cde9d7 100644 --- a/www/docs/rest-api/get-agent-session.api.mdx +++ b/www/docs/rest-api/get-agent-session.api.mdx @@ -5,7 +5,7 @@ description: "Retrieve the full details of a specific agent session using its un sidebar_label: "Get 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 full details of a specific agent session using its unique session k diff --git a/www/docs/rest-api/get-agent.api.mdx b/www/docs/rest-api/get-agent.api.mdx index afd0c5f98..bf66a5981 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: eJztvQt33DaWLvpXcKp9lyx3VVmSZSdRpzNXHTuJTtuOx1ZOTo/LU4UiUVVokQSbACVVfLTW/RH3F95fctfeGwBBFushP9qOw1lrOhYLBPHY2G98+23P8Lnunbzunc5FZnTvTb93PdBlnqvCiHjAczm4EMuBWeYCWr0QhVYZT6BdLHRUyNxIlfVOeucLwX4UhmE/7PTFGRMZnyZCs6UqmVGsEKaQ4lIwsxAsUmmeCAP/yGZyXhYcumE8i5nKBf3FExYLw2WimZoxznQuIjmTETs9Yxy+0md5oS5lLLM5dliIhci0vBTsUmo5lYk0SyYzo6g5i3jO8akUus+MUgn8Kub0Od1nU7Hgl1IVHH7Qpigj+wOMKxWGx9zw4SgbZb9omIfUOFGjoHkuIuM+FE5Ks6mYqUKwqBDcwFi10Jr6NYUqYY0WSrl33RiY1LqEcUaJykR7xzNVsExcsVjkiVqmsIF2rFxmhsuMxSoq4TktLyzjykowHhVK4zYVTGRGFHkhtYBVltms4LQOZSGGo6zX7/ntOYt7J725MLjhvX4v5wVPhREFkNPbngSiWAgei6LX72U8Fb2T3kvxr1JoMziXqVAlvLVKRLCiVzJJWMovBONsKrRhYjZThYGV9pQDZFRQf0xm+KelEBEzLSKVxZqpghmZCqZKM+z1ezpaiJT3Tt72iKB7uP84wlRmMi3T3snhTb8H/cpCxL2TGU+0uOnvNp/BM5kkUn+8aaXY//vMzU8l52ZRTQTJYnwhlq1jLzP5r1KwC7EEEoIhERkFpxpGUK2aKUoRjqje5WnYoVlww2QsMgNT1Ixn1Dl0aCeiTSGzOZKYMaKALl4fDL7hg99OB/81Hrz58x2a41ORzc2id3LY76X82v318KDfE9cclrd30otKbVQqirHlcfAVafAnJOS/i2Xv5uYNTEbnKtNCw/iPDg5Wp3GOO0WtmMyipIyFrnO3llPLrqRZMJ4kyIB0v8FpUhWLhFVnqc57GIdtl3OZ8SRZ+o5FzOIS1sh9EDkNHPiC6XKqgZwyw8o85kZoWNlIZQaO7cnbHs/zREbY/v4/Nczs7fqdyzzzpY2LeMZK4IUwF6AH4sgCGWuSSGzplxLnwmmqwf6q6T9FhCykAO4CTAk+DdT4+6Mdd6TaqGVRpjwbFILHIBkZNESevGHYOw7tezs09oqGxhxXrg3wOYzspnHCV1eYpC4QVfVD7eDvaZaXRa60wB0NpUnbHKphhvSDXI0n8jcRA6Nb8CxOUJK7qdhVZjIDtgL7W2on6nm2bMg2GIh7A6lxCDOFf43rUrNtxinPcYKgEjRkLL/kMsHtMqpagSGD/QQalHTk3V7Cv1e7wdHBT5c8KQW84/a8pXHbyeBxLEknelE7I1mZ4OAcy61t97lSyfdhzyvM/bRtrP5gTwWc7ZhNl364fRaLmcxwyxKZCcvNKt2s0dUyR8kQS/hqKjNuVAHjtid9+ZzED04XyDvPgWRgh5YZT2U0vhSR4QWJNTu3M/zyY2rwv+j3HaaauSHXhwg61LSUiRnIjNneHDuDhVjwS8Ek0K+nNY2ztsI5T7iZqSJl09KwWLFM2Xc4i0UMjFXELavCiMUOGWmSgj2V2rBz/K7I4lxJkq+wcupSFDU6hEaoKk9RyYPXJ0jpMp4wJ4VxZqij1qkLtbjNnJd+fbtykFc5Gk6l9eT02dVCRguk9eSKLzXba+zpHo5wLjJRyKi29I0ziBQkZrxMTO9khTLcKZfx6sn+hWSFFxEFfpI+sllI/LdRyXh4r8a94NHh0QNx/PDRVwPx9TfTweFR/GDAjx8+GhwfPXp0eHz41fHBwUHAdmFDz+IGzx0bkQLZtEiJ/yUSFYHZ4ppUa0S2g509LVPwrh6yXxciY1qYPu2670FqVogsFkAT3LCizFBtJGEdl5GomFbQIZo5p57o/MAueSHRrjsZZQM2uUPsENjfhA2s9Qd/hb869aVq4RWalOfU0hpFwwuxhGav6E9gsfXfw75co9XeorIoRGYec4PD+p7+ZKD/3MfZy4ydvfqZff3o4BCWOOWG3RXD+bDPRr2jg6OHg8ODwdHx+eHDkwcHJ8cP/2vU24cFeULEcMJGvVeCF9GiTq/21BFnD5aGqYyFYxr1wlPoyS+kmsfVVpw7crnp93gxR6E3BqZQyLiFhn7OrfW84EUcqRi23b5FJiMNmSeJrsSYszFImiWKFEJngeAbVSdGMfi8jEW/Idmqbq6AedqG0BJ5Jn3v6dNnZAoBr5wK5qRrtODZnKgxVIAzVbCLTF0xswCNAz+kmbgGhhkwYjzTsEfnC98IpBhPtIKvuJNTiJkoRBYJTXZXZsS1cS+QhnGnEDOSbLEyMEpaDDCZmF5mhl8j8b+C5xG9ChQxk9ciHuOfox7o3odHD6Dd4+aXT9jk7agHXxn14MUmbQ9nUiTxGI9R72YCk3pZjZoXaHeo5LJ+oGeFSt18cHwr3d6D8xdFQmv3W3V08JMaXquf2fAlXj+77pXqWIwyhlP7VymKJcytNs3hyoBsuxua49kMfUVXnESflaKF4ImlronrbYJGB/xp/+5bW4C8TbDtQkc8J2KayUIbdgf0GLu/d3bXsUiv8kLgrbUCxkihvZMejqzX7yUylaZ3cnhwc1NzILz20sl+ET1sVni94AV63Zz/bVWNeXPT76VRvqr/PIvynZSeZ9+/aFPyGmqcPUNNM+Tfqx+kUU46gR1U+9Ab6gAsTqcCdCpApwJ0KkCnAnQqwJepAkSqyFXBxxo5zqo28D39TgxpF7+P7ZDpFhb2+WoI9WWoKQtbJ9TQGxor2onnTjx/RuJ5QQRdakfPIKuZLqMFhIDgZ+SbjqRcgBAIS1QCEiWs8+JCnEnwGAMOSaKugFaNFcVGsRm0xUMOErYSvtvPOo6kPeBhB48tGC1icKrtNLT1OuM4Czzu+kJm8yE7m6F+YGNKcd9PCAZLYYPpspUtVfGTMGJyUIuZnKbsjJZCxLACU4yg5YK0mytVXPxHDxh5u1DAwHBFECsM+EUVDr/p0xrVAxEtpooWxcC3gTOthQGeso4oUOCBLgCrJK4hIBO7MMXTp8+GLhqk2zQf6NJxGtQlSvKHgwrhVAOrSgybgaTabP8T5taUN5tJZlWMYbfUn+08WMAV8QWNBz7mYFejollaGBcNEnwuimDm2ynayoZ2mnaCxij74T7pie5zsK4bPsmLgkOUXRqR6pUV+LtYirhahnLr3C/gBc8kiDrC2euVseAAqSUE/Gvx5fFMJkYUu60Qvb9+kUpdrdGQfU8BJSHNAqIZTJPmTAeVODsb9dLlgF4d9fZBfeYZewLj97ovowHZFzar0K6nm33LJ1d7kzrgLnBsUO9HLR+FslWx8VBgKkb9YIC0xseGFwY4q+BwLMsi67usH2CveaFAeYaJTsVckiqiMvHzDFNl6jwLMjQcTdRH26LG+W2FpeZWR36PYQ/Zy4oVqCgqCzDjYOkw0SgVWvM5Lpsup6k0pmI4NqpLX/LTh0Bt+xIwmz9BQ3Ujh8wljFhpgzbAolDlfKFKGjAMEQlWauR5hRgIeBODbDYFIoxS+/SMeiJEZf2G1qMGNQAXoYX81+rrKyeW/vfvmErT3uKZJdAf8LCBNVA/XECD25XnU7BMB3XL1G6FjTJnbXs/rPmzWszOBKU+iOIxR5uv17RmcHxvNgrGGzRayEyKZQppeTb0zpPEkn0L18AXWPUCKDvVV9iVkPOFaWXgzUD4uoC5fS8r0ymmRpFmCWFFzMSr9WRzvyoZj8N7XE0H8oSaH/YWBvwAzts6a21nl/QbbF/Gi0JdOYZeCF0mRu/KPWMVDWOR88KAKsn+yvZENpeZENBq70Ow1JA8OsbaMdaOsX4KxpqIaxnxZCwxW1cla+yJn9QVS0u0gIl1Mvsi05EqwDcKmVRFRWkinYoY06mxwZAdsFTwTFfvEVuyRIJmJVggSUJO4EPbXGXJsuUdaB+QwCoPniWKmzBf9QANOJu7GvDWg+HB0cObfk+LlGdGRhsly1lGaTh44JB/ktNXyxh5KVmnfA4HxLiMGVRfQfrYnzFm5Ki+Ncktg0G+9mO0Nl+vyiSlnHmfxuLbOZ5ElPzKT+mmtb0zJle3+z9poM7Z7tN/gtwsmNUOVnKTLgNtH+ORMjsj6wVypdVspoVZHc5z3F5gglaKoTVwIXMcWc4hibWR7lZlLHuSkJl5cNQgiYoMbrzTtfn1Z0Q2LGsbRSEa3GiXD4f0d3hwY3Nor82qVV8RYpPZ1cdYs5mZ9YHkhdBhwj5KEJfqCDauTwunCYGPYMj+YV3eePLAMR4teMEj4DhjEhj3+QxUDODXkOQPlmDtlz4msGE4RkGUxnriiXiW+NB9GOmvv6YfZviFAOEvIhFb4dqwHZtDa9eJqp2rXqg8HnqhrjInC2FQKTfRAv2v4VqBMJTaMp9ZmSANLjCQJLzQtmmbrYt8hUzC/TRkZ/NMAceUMzZpLsAExTdsh0tmQ39VxHO4PkFxiBLcePY9m2mp8KqGzRyntnEw5z6qhcqwRNlUQWCymAjLfXomM0WZUa7hlSricJt3IXOg5mpXcB/ffVMsGXzqPcFh/K63pElf27bEt//kx2Qnzlqx8Tp790rUUW0NdqLKtUvw7ybKD7gCYEuMDZ+3z93wOc31quC5bhlfaJJUs1QzIzLS4IJbG9xaLj+dP3t6/38/e4q9A+EqiJCg7hQLlLii8GHWEq+/YIp4dZUEei0hpAXmRgyaVyHCLy3kfJGANQ87ITO6ffbLGaqRq+8Fe2BpWcANKJd4UJ9wZQmuv4jwrUi/gyMmsvj9l1Zk8e94YetTqq2rt2rx8Oy0rvdxYW9q4fJVPnbUcrCPaqROOxRskOs6DLng6OqRh11cMoUoeHZBzGSzhvYSW3rV0Z5/59J+afuhfIxL0L5zdSUKYh/2QpRMYWdoqVUROzZVd+/8bcnsIIMPkKgqnYRR2lTduymsXk9x12fgjk7CsyE7x0sE2ITewiCcFsYqkbajCazEBHqZjHqZysSoN3m3qxv+mlS4zm3rigyZUja8jdKYxe6ZBvUPoFfKuPQCqdlkZVSTvj9oTsnFixTu9zFFzPHqsXs2DH6GuxZSw93bQqCYd44XvBDJE0a+N9pFA+Mp6tREiSi4Ar7/lsMVpCysLGxAzK3JjzCgs8eObqtZwPO0TIyEG1clD+gJh5PyJXgbq3un4LLLLsZHXx19dfTwq8NvhuwxKUDhyj179rLq5+wxAw5DfgEbeu57Yq41te5HvCvE7t177Bf03r0TvB7T3BLb3ebsTRjv3f/4H27IX++PRvGfa7yqNiNcaPdhYhzh4q6/0xde/KoWeNvy4FuwQEN2tvPibOS8dKTGz4JdHV8e9kILeUUhqc/mVS3/L91kQE+FtaHBAeQ1K89enFPSeYer6UBwH2QZeIWlYbkoQCmiL86US0vQRuSQvXLoeKzGC7Myy0vjh8GjSBXorAIuCw+SuSqkWaTDUXY0ZK8w+hlsS+xfnXIQz2RwS7pCTx6x4Sh7AN+EqWmbdJOz5+7FvhWbz132Qj3jMaZsBKkZLjnm5zxXRpyQcoAPgxWA2Qdrpg2fIzkwDqaGzGjNrYjpkyPALySwLbqaBnLpKqPe+yxXcK9X4vXgQsRl5Dy3q/vIDfVJH97s+8BojlGzWVsMZSMZURe0vuB1BrCDhJJw6gRlb1C/M0G5q4g0zo9JXuxoyE7xo9ZCtF8sRKou8RZ2tvT9UG4A+VunIrEWRUUyfkmGrEF65LOH/jz5aUTlsEkvTcoNSI1G9NFozU04JLZZWaAaeyuiAy8Tepb2kHz3UFrsUfd7ZL3VUptaJoaZnX27u35t7AlcdS7f9HuW0MZWuw0oeqpUIngWCl2nQdYcyjOGj+sKVKWtgcqM2+7057taCDZqdxhCVA4OA2wjJD3RCCtIgO3xirOgtc2I9A8GFdX77SUZPy/BWihEIi45OD7s9z3+yJD9DL5Ea3lYBbPRh0t5sXHbcNhDNALagjvk5nYaIDjF6/FVUVgOEr0M1BwIm8xab6vXVZdSYwq3KAYuf3VWZnZtcAKkgzcU8A+mZdIwA9WSRuFWqDqB1ahIDXRW2CARlyLxCTl9tMpWHlp6EdolnoYxSYse0nhps2ppl9cu9NiNrl3lwTS95vJu1k7mwtzduzPEQe/ts3vMPnDTHvthTpXSZm//Uysuo6xTXTrVpVNdOtXl81Fdbi1QIaH4B8ufQ2Gapi0+mVZJimFUnrBnvEDQIfbSKwxA+jzBf1ZaBCxCLC9FoQl77aMJ2jRd68Dx3x9PJdeT6n5au2umzezeLCxh+eC+SO077aKyWgtoM2Q/yTlQms3PlzYzgaXAYXzbnXIkvGw9GD7oZGUnKztZ2cnKTla+u6x89uxlKCJxubYLSW7pA53peSICCxmFH6RFRis3+WYoSj+WaMShB8IRYw+0/YUYeANezTEZbkvIAZch8ISH/gh3laWNMRBkGDSo0Rxm0+Z5sqyuhniagZQ8EZVGXooEZaC9ItOLZBGVCS/u1ndvnxLXbCraw5WstWrIa+7bbvBEwLRDcoCAWBs15AmPBBxrf+4cZcRKUJZkqmKnmjjoxubM0SeBzp8PRQMw3gncmw+4gbs8F6usNZZQ7TrOtoscfEqV4ktRKG7Nh5+rTFQnD96v8vm7IHIXRO6CyF0Q+Y8lCr4cYdBZl511+UVYl10Q+fcYRO5ix13suPOHdxpLp7F0GssfTWP5ULHjLmrcRY07KdlJyU5KdlKyk5KNqHEXLe6ixa1k0IWJu9hAFyb+eGHiN00UpXoE2aFzN+F5VjXvEEOWKgMUKmHV+9uPHlU9bgmj/mrBp6rOYLNs8wqtyeI645Yiuj60knOPcGJrIC54iDGxxudcm/oYkYXMhigkNXBmBuAMYGVPNhOCTCGCwvIbDBXocErORW3j7ljDdMgY4pOzycoQJrYAog1LWtVsWmZxglHQakGth9jxjRM2yu5h3HmSFyrNjcdpn/gkgApIney3DDFBaqjIrhOAz0NMMnaPTXDQY7//E12hbYsUax5TCeRRdpokNlYLQNnVWMV1JHJTrYCroWgRuWKBaNUW0hmapYQdAqARuBJD9uRSZA4WcHWKBGVDus7qqrq4tvbgE+6OP42GZvpKiJW56iE+mAB5hdUX6u+La3DiS5Msh7ZSw6YxYODaDdZh7/haiTUT2iEf0Gdg22jmw71WCPZ6RdTKTZyqCBjdVBbx4Gh4AILJrmA7xWNSwNoZVGDpk6CXyfYSresH1JockPLrMeyMrUMwtoer/YCuisyGhkCScwUTwq7nuwOtPawWc1NlBNrllGd8DgaNwlop2oiU0EfA9V+oxNYBpv4qaHO3FZd0MAGZ0mZETNU1nBw7miH7SV2JS0Asgx6pwotHvTOtzOFScjporjbCcA0Xkdrh+SCdUnHe05xHi6DAgms+ZD+ownphXKH6jCFokKoKDrQPCRA46KfXicrmA/xcraLtm7sLY3J9cv9+rCI9tMJxGKkUH9y363ff/jCgvwfkpNrfHFJ5DVVa3o56sBsW6RX3adTruxBjZugHQJYDW4uzhUhywB6xNMe1loglOhz1bvrQ4Z8A3AVE/t07/3pJ4HQyY3fsABGekB7rfWjOGkMgTNmVAfwoL63a6no6i69/VUX8+o793lBmsbh+Uz8MflTNz/hxt3zrzls78OFcmHNxbe7u34x6zE5PZPHKuq0btA2tAfBPmaa8WHo6JyG6d+dtuC43ezWdkfEpYMY4Y2/Uuxllb0ZZLzyG1y2oh6g1OICWemIZbMWMXyoCb0sELyiDCAstIC9skqhVQnx3zjAIlJF1Mqqjvi+R+tYKMIdwOq4g8lZp83tSpm11MRSYjsFXgWhVmrwMYMo4Q5hiBkVCUpxRFqNuwbF2CpklJ9iJyNzrTvECxmohLxfgG0OTO3OCIClF9R0aAVg1vtQzWVvkeHRWzmTNbCdOatB5qIIHT58+29NhTkNghPqy6UsWy8ggQi0IjwhQBZNl68owZ+jVkHQ3iHN/6h4c1EDmbipc2nHCIdNv3iLSn9pfrCLeqsu5QhObQHF5aRT+SQ6EEkZa8F6/99sCnl8oGDvHJwXWvDAL+HeWxOjYgX/n2Ebn8O9/5hk+SaBlCc8vJYBQyQzaRwJ6KC/guUigzUJM4Yscni8kvFsW0FJfwVtTAU9SjV+Heluhj8OO3FmXbkHwFmVDiw6LeTyD3zZUMGnYmu50Wsvp19OXz8+e/3hSHYMM1G9RSNQOEjYTaI4QnU0LwS9Q3QMXYwYgZFA8HM2qS1mYEuk6w2RSGYEPAMkIICtttZKqa4cwF6nsUhRzLIukcoPRvGZ9Fe8tnGKhmvoRoBwPaVzhrc1Gc5KkG+xSMgxs8afJPDeD48m+s08x7QmZnPyNTHTwGweeYWlIctVUROpyKhYyi9daAVvSUnJz3LMM0KgLke2stFPrppvL+qaJBG4JTQyoeJWVuqYWEwwcGVnV0i5iM8KY8gsLWEdMB1XcgmexSrF8UwK89arRXtp2MxURMDgEdYFcYJjayGiHAOUN8AVygy/Huch4YlqAruuDxWbyN4FeNru0Df8bForEzCnXua9qCW4LrdiMF30Wi6gQXDtmjzuxB/z2QiRyoVRMWWC5cJCakH+NxecuRTHlRqa7TZEgniPxQWboMc0XAhPtBC9aJyezHSZneHIB0h+QoPFbuYz0LpMCL1skiX+0nINXZpmIUKCRTC4TtArJ45Fy9FP6XrZzDQ29rqk/ZHth2n6Zm5prw0Jr4i6ShkS+pUlWpqKQEZakcyOx5edACnPNNGoIDBvyBHxSo9eHo9GbPvzjCP8hTDSk3sC/XusKw4A+4w7KBmDDhUmTsGH9k5z98vIpbhWbfMvZohCzv456ZQHSB68qjHrfYVKo/fPb+/y7CXWc8uIiVlcZdP5D2OfkdfjGm7tBb/vw7gZpjn5/gNnEpQKZatIEwyv0LQSJD/pr3yKYkm0ApoQJdm1Mu0a2BEJS0vqoIpgQmfCuByzzSiVKfa1Bbkwhp6UR3qj3WKeIQA94uFjzZOIs7XQJWYX3Z0rdfwvFVGR8c/8tNpTxzQQ/6LxVk2CCzqEp0ty4OnebhYf7YMOqpxKA/tuIdhrs0hqYWjjm77uSYOjZLrSwYQ2gM5SvgFrLrIriE5Nlxiav36Dm63rqW6aPK4QC7jmbCsdy0E6qIgQwVApYWF/hsLa+jROcKHWh7RF4/fzN3W+D5f9uf4LDdMOo4PDhmG8gh0m4uBNy59g9IselW5IJ7ggqdzcTm5ZdH19w0K6QrxXeBKX4rW9vZaqdyjn0uTqdKxeqc0SxF9C1TYbQWGcXBzXqnYx65/Svmy16SzAVDHj7KKYdYL1wIcUnxjMegR45xrIZ2qB8xojWKkk+ySzWLOg1bu/t+yx432Z94GLWAgs7xDWCYf/odbdw4KEOH8RkqIQKgGrzSzFeSG1UWyWNX6s6IdAwMJyhJjG9tXmU/kNhiNlWPXyzUh2YIHTbakTevlLwlZiurRL8q5juXiH4Skx/Z9WBq6nXKgNvnEijKnCwel1F4K4i8OdVEXiFkMOawBT+B83z91QT2CgmriGNZ8vFVFhKbdjpGYvhZorKaWWODo6Oex++CFBY88fXnzoKCzNgASALud+CpWXpzDVwZvYGndrwS5ksgd9Xk7bPgttmscIybi2OOqkxXGYboOSyF6DIq0kdtORWr1BLlZuYJOzn50//AWXChL8ipIX7SFBeWFzzyPiP+0M5l2ZRTkG5HfX2+1AobqUJxrYa7bA+gUziCDy8VikKXrlXbw/DmEKRNu1LIVuXZM1Hulp3t1EcsJYdFmzD62AaICvqA+71e/eG2vDoAg73LFFX+PQNVkB4z02zHbiSzPVt27b2OufpxpWf8nhYa7R12YPWH3/R3cfAWZsVIkEBNtCqLCJhl3jX2tw1tSfUEtv0sHfTuOZUAW1F3fpRtLzUrmvNhbmlooWCYSZsORsbASJq+eXl01vkiH4EPWwuzIoS1j7DFg0MVrNTvzr16/NTvyoS5knyWWhaZZGs969h8p6JFjXm0NXI7Wrkfvk1clNhFqolDfen8/MXjH7cQS3/8cl5r9978fMr/M8v8L+Pnzx9cv6k1+/99OT0MSoAC8Hj1pQH/Jb9FZPIKy08uGzfeh793m8pZO7ObXdwu4P7ZRzcqYpbPAcv6aww+BUlMpzJ+y9+OXenqCv93p2OP8DpoPSxcSFiWYioLVE8CF5QY4ZiyL/Rek5cCKM7KN1B+TIOCpisqjRjLSKVxS3nxEkU25Bco9i29YQ473B3QroT8mWcEDBMxuCcazkcz33EBBtYFzTSY92OcVvYnZnuzPwBzgzc8rrVmYFbCd2J6U7MH/bEaJ2ML0UhZ5vzrKgJe/XqKYugkxlCXHXGSndI/giHBO6Q2BDNeLo0bdLF5bL4jdJwI0ACpoBB9CgkIlOUWeSRKjrx0p2cL/rk3CIDxGZifPj0j4Sn05ivZn88xee7ZH9QD++S/EG5c0CR7bDVnywFhKZUywBZO8tGAohdT1C2lUpaK5L8ksl/AfHFgEU0k6KgFALse3NBj/82KhkP79XoEx4dHj0Qxw8ffTUQX38zHRwexQ8G/Pjho8Hx0aNHh8eHXx0fHBw0sg3O4i5HpctR+UxyVPCCm0s4ybnWlcy0585jrX+apJV2Nk2FEfxRfGurE9Gl6t5JDwdFtwtrnNoyhv678my6jg8bO8ZbSbBPKwz8lW90Ztvswsyrrpnr+l04u39XZnYfmxfvPxlvb1m8GqPfbQUaXL9tRzr22rHXz4O9uhTA9aQdXsWIUAMfX4jlZ3MfoxpSe7IgjNWqU0v3UcMLSHekV3EJ/PVZN3nEWgAjyd50iPt+PjBWQh2ywAbNu2EttzzS5eAiU1eJiOdiADfckQW4Mh/ratOVrdpg7bpvYIHRdPoAdjgTBZ8mS7YoUw5+WR7joT173I5l4ofJswzuQhYC8t3H7g6KJcPWG7rwkwO78YOim7G4lKK1Dl31RfgGO8XPsievfmQv8dMNBtlWn3RaSDELGRTzcBnLlQFZD8TmoXyv0rwQC5FpQGoT2aUsVEawJABBHUn4L5jPczhrmUX6d8N1PGcNVIbjSBdiOSADM+fS4gBr7NzYG6PhwJEKCVTBsfE53GFOAcHEQn97CAgOzkW4MdFS3Oa22kqsorG76RDSRK/fWwpewJ2ho2NETeKFgZHCkpbacJlZ5B80Qt081tyXqniO3ymMKMBtapzbrEwStpCiANYKd0dadvK2U4PD1kboIWnYYQUseB2d7myot+tcH95o1+V0jAypRe0rp2tebFH2yumAxNY7qXiXiqB5QTQgwkdc9fjpbHe/NnWtbsNUm7qcX9xOg+s0uH+bBucPK+xbC7hWnYK96lLB8/YJRMdpMI7NOAWmroRtP57Wkb2mxAsChoKVzvVFrehd63gdkDkDPLJMparUyXKzoH4pLqW4sjpPLAAyOpsT9kUOAsPmzbLR6E+HRw8IR0tEZYEleLQuBeI/WPIbGyPHqczK1tjEuT1XEgCcAQ+EGvqgROAhFte5LETI3NoBrh4dN+7h+ok9OthdmgSsvA5r4VlUA2+hDSW4GEQhZVkA5/V0dU7A0BUB4g1JQKyF2SvdCGdsJyQaaKvufuq0X1DgCQLbqcGISLNW6a5coq8PBt/wwW+ng/8aD978+c4KoHHKr91ftSuaVSVpe/MzOMguJhFSECBObUCFdATiSkdaYDe3tCAsKbBFDBgQ4yw8eyLiEzycsYgkwKJcVWFlwLwyBJxla8qkotIF7TehvxyKKAEwiTlhpyQIC+EQqjFq4wZ4l/pE8C2sLxKMbR+6EvlCIDaU78mOguJbrh84DBASq97eCLpUnzDsoB8xtHLfrKMXVo/DjQufNo+KFS2AX1jbvLV6u7ebvTBqV9arrXQSjX3PKWIExQgghtfQ+m+rvVaALzc1VZbuDPdOejmqhlY1gVwefeHUd+CQ4wI55qq7sTp/b1YXrK4iroF2Wcdubq+4OvNlDObqqvJ6an9+KXi8gwKbVeYQ9PcuWiy8F9pVejUifKWKC53zSHwylba2ajW1dtv8G6ptffk79bZTbz8b9XaVkj++iuuPwzrf3Nlj52Xyw0PoFb7F4cULM+bT6PDoAYGQRSq2MZrVb7hf3Ya7BdnkzrJCteBXAADMtXh0XMdegV8wUAQjAU6xQfJhIxgAchQLNnP3cGBde/tbld06UvPhwQHOOd72XZHF67/ap5xT8NLddgBHB7ur2E2BU1ezMVD3/hp2C2lvt7749RhSpLblU80AzbaeS4WwGmQi8ZjSdxQi9mWIgjsXesgeByCHRw8f/f1vt7doPLLQ4cHx1w+/ehQW3Dh6dHR4fGwzw9bkG6+iG9m8Y5DKMMwBgcTiLBojPji4LcRwbbwHB7XBEr20kcQO2tF76EDzQuTrdaAfC5HfTgeC/t5FByJsHoqbEF6973KDJ/bfq/nA3No1nzWzXqf54KJ3mk+n+Xx+mo+n5M9W8yFOcRvdZyP0r8OnrcpjwprcdSUZaEEKMRfXWwoCiaJQxf+hCmbIqfs9eHes6CxuUELwE5FKUywHlzfTDrcjgAWYXwPZ6/cG2S2gvZq8/sNHimTK52KNtX0Gv+1samNP72xnJ4rsbOxFV2lBVKlBUydB/u0nkTbVYtVEzcaZN+RMsN6dkOmEzGcjZBo0/FlJGBpbKGfAkbklExrEzGs++O1g8I1z/NdlUL5QRo35g9kRnUQIWK2O5DE+ZwnAstKZx8FUdzF2qAuUqCuszDNftBbfCYYFD3YWDjX2/OElg09MsizYWrd1EfHYNvret9klryBMybGvvYvMoLeJA7oeKz8tkAkvpCpdgYtPl3LQspQ1AbLbejQkSdv+dCKlEymfjUhZR9WflWwJpYrlJ7cxX6jaxdg5llbMCCqGseq5he8EGW+bhIgvO1PL6/dJdTW3rm+7LXXS2zdh7uTq+NzqbF6SF49/CN4xilXD2FWWtcuRDy/U5sL4pfNFRusi7Udh3GigSOUu8gzyiKvkRSoV/u5Ix/WearjH3Ob3fjJJtrJ+NTm2yzo0pNjqhnQyrJNhn40Ma6fojy/Btt4K8IOqRFmYPk2wyDhgh4ncXMB1dd0h6/vw6MHxQ1jCbRcr7O0JSM+yqS7uesUm0ba2pPxyQB3uLjga3PqjxOfWEcEHz4QL05CaLdfQrRfcfoD+gBfCFBLu9g9XPmTxeoLvhEWe1mCYOJCf1S95wF8L/QPHg/YpKE/mFC08InB4psJmjsU1kWALL7vyEliFIRjodo9rfQKuCsX/fPXz8xccr0rAXQrtc1H9CGdSJLGmmi1BZQqama1iGt6q8CN+/abm5r0zhIhjkfFkaN0EIj6FLbwzjMW0nIP/t17iq0bCHyGmCJ0EYBl1C56EpL1+uZunl6R9tEKD01ImZiAzf5kTzom9vbuASmO++rQtFxlcXPIFl6clnDakEHyHs1jEkoq81z+JmouOFiLlVOMdOS3s9zl+V2Qx1Qo2isVSR8CtGfdimgaHfv0pJukZrJlHl28nFQsnNiB1/eu1GpL/ZncCbdnYUsBepffIqLb0m/0H9V46RIJON+x0w9tdmfUYOITEA1qQuwdLJUYTm/rsSxbDGwGsgUINUsa21HkFPFN1c4WV6VVV3xt4Jn0PlMpQmlquZq9CEFf1ykmfZapgcP/U3q+1F3QxWzxkxHimYY/OF74Rlp9NNFb0difH4yZp6ztBzci+UCJMEaDcUIp0rAyr4+zoZWb4NRL/K3ge0atAETN5LeIx/jnqQWL74dEDaPe4+eUTLBEKXxn14MUWKB6RxFjtHAqHwqReVqMGbc2DJwUHGqW+nQ+Ob6Xbe3D+qBqvbh4d0iLgtfqZDV/i9bPrXqmOxShjODWsIgdzq01zuDIg2+6G5ng2qxWDtlK0EDyx1DVxvU2whCz8af/u21sWGnuAbRc64jkRE10HuAM2jd3fOx8aC8PXujs8+OCwGE3N51m0W/7Us+9f/F5KhKZRPQmqfegNRSCN8k74d8K/E/6d8O+Efyf8/xjCH2AkVcF3rxce0Qu/s5rhdtRtdcO3TqihJtS76qRxJ40/J2lcxSIsPdcgq+BnZJOfBVrVrtXDaRGDU22nocn7ucBxFnjc9cWHgquq3Yc/qN2IP03ZGS0FRTamCBacC1Jm4Brsf+weuFlhwPXQDa7AB4jd1IkC5Zur6NyI0Tx9+iwoO92i6ODFI8tpigri2ZavXkEIroEF1Gb7nzC3przZTDKW6QbJCvY6u4NEVigH3QKuiC9oPHDVt91qBJErXBibV88EQGYHM98Nf00Va2CvnKDxWfx9Ugvd5xDpd/0nVwM+DRSGOjL0trlfwAueSRB1hLPXK2OxuYYe9A6UdceexwT2/P4IdW4k/g4FwgdMBRMS428crmGCokwHlTg7G1Uh01FvH7RlnrE64jmjAdkXNmvMrqebfcsnV3uTOuAucGxQzUelHoXyO8Ome7jzdqjzrvphh/b+haO9951VFMsU8AftxSSeJJbsW7gGvsCqF0DZqb7CroScL9oTn7MyQTXYGWdbCvHSLdzwDm2sSng97IlmEsh4HN7jajo3b1Y/7C0M+CHAULSstZ1d0m+wfRkvCnXlGDpA4CRG78o9YxUNK/hC9le2J7K5zISAVnsfgqWG5NEx1o6xdoz1UzDWRFwDcOgYE3NylayxJ35SVywt0QIm1snsi0xHqgBXqEoBZclTmkinIsZ7i9hgyA5YKnimq/eILVkiQbMSLJDEgsge2uYqS5Yt70D7gARWefAsUdyEOAYHIY5BwFsPhgdHDxHwKuWZkdFGyXKWUb5NHWpMZVrGyEvJOuVzOCDGpcag+grSx/6MIaKwGNy6/HY3Rmvz9WCH6a36bamqnceowoV65ad009reGZOr2/2fNFDnW/d5Pt5WWEm2XmclN+ky0Pax/pHMzsh6OYRMrNlMi5bLAlWBPSvF0Bq4kDmOLOdzmfnSR7eAtgihLAB5xfpYt8NtBKOg/LfbY2r4Dx8eYDIpnvtVq74ixNtkPVofiEVGts+sBPE5iiDbg/zEMgHBYIbsH9bDjScP/ODRghc8Ao4zJoFxn89AxUD8C0jBj0T9lz5mqmH0RUFQxjreiXiW+NB9GOmvv6YfZviFAOEvIhFb4dqwHZtDa9eJqp2rXqg8HnqhrrIQsjLlzfsGsFYgDKW2zGdWJkiDC+WANkloNxOOw0W+QiYRYFfPM4WA8jM2aS7ABMU3bIfLWkN/VcRzuORCYQcAqnHv0WxsojG5w2zbOJhzH9VCZViibE4gMFmYacSRA0+XEL2mUmIAoK2KONzmXcgcqLnaFdzHd98USwafek9wGL/rLWnS17Yt8e0/+THZibNWbLzO3itkq9oa7ESVa5fg302UH3AFENTM8DV4aobPbT2hgue6ZXyhSVLNUs2MyEiDozATmGpkWBaG/XT+7On9//3sKfYOhKsgQoK6UyxQ4orCR1VB3CAmKON5nkibJWAUKyGkBeZGDJpXIcIvwfXxBKx5qqoAnRXslzNUI1ffC/bA0rLIYu3zDOoTrizB9Xf8vhXpdz2L2/beSyuy+He8sPUp1dbVW7V4eHZa1/u4sA1I1xU+dtRysI9qpE47FGyQ6zoMueDoGhcMdnDJFKLg2QUxk80a2kts6VVHe/6dS/ul7YfSLy5B+87VlSiIfeBVAQV3BAp1SUutitixqbp7529LZgcZfIBElUM1TpU2VfduCrX8f9ozi/O8p+EOQjZk53hbAJvQWxiE08JYJdJ2NIGVmEAvk1EvU5kY9SYYMZewICko6wpXzCpzy+c8xQQ4wsxNeZ5bzEePNB2uc9u6IkOmDA1vozRmsXumwco9H5sBBOkFUrPJyqgmfX/QnJKLNybc72OKmEO41K/SMPgZLlVIzWIBqi5e+7GOF3tNiZHvjXbRwHiKOjVR3gmugO+/5XAFKQsrCxsQ8w6Xw6tZYPmWMjEykdkcyn8UtQ1J+RK8jT6sjC677GJ89NXRV0cPvzr8ZsgekwIUrtyzZy+rfs4eM+Aw5Bewoee+J+ZaU+t+hHkP2b17j/2C3rt3gvdgmltiu9ucrAnjvfsf/8MN+ev90Sj+c41X1WaEC+0+7G9t1T68RvfA5IHmAm9bHnwLFmjIznZenC0FBOCN8bNgV8eXh73QQl5RSOqzeVVL90s3GdDT4A5ZpVl59uKcks47XE0HgvsgyxDx1Lg6CfTFmXJpCdqIHLJXDh2PhQwgyE4A9AE3DB5FqoippheT8CCZq0KaRTocZUdD9gqjn8G2xP5VQtokg1sWhPOOHrHhKHsA34SpaZt0k7Pn7sW+FZvPXfZCPcHRXo+VmuGSY37Oc2XECSkH+DBYAZh9sGba8DmSA1yLX8AFLlxzK2L65AjwCwlsi+6ggVy6yqj3PssVXK+XPEmWrBBxGTnP7eo+ckN90oc3+z4wmmPUbNYWQ9lIRtQFrS94nYVeqCS2YOQhQdn7mO9MUBSF54zG+THJix0N2Sl+1FqI9ouFSNUloqtnS98P5QaQv3UqEmtRVCTjl2TIGqRHPnvoz5OfVohJQUkvTcoNSI1G9NFozU04JLZZWaAaeyuiAy8Tepb2kHz3UFrsUfd7ZL3VUptaJoaJnH27u9UNdTqBq85lwAgkQhtb7XbNreHg+m6Tws9mDB/XFahKWwOVGbfd6c93tRBs1O4whKgcotJGqkD8LRxhVWBme7zirFmOJnh9UFG9316S8fMSrIVCJOISq77Z7/uKHkP2M/gSreVhFcxGHy7lxcZtw2EP0QhoC+6Qm9tpgGGRhu+tfmM5SPQyUHMgbDJrLZpXV11KjRnbbeW1aQKkgzcU8A+mZdIwA9WSRuFWqDqB1ahIDXRW2ICg2VzYqI9W2cpDSy9Cu8TTMCZpSwU1XtqsWtrltQs9dqNrV3kwTa+5vJu1k7kwd/fuDHHQe/vsHrMPPDCEH+ZUKW329j+14jLKOtWlU1061aVTXT4f1eXWAhUSin+w/DkUpmna4pNplaQYRuUJe8YLiNcm7KVXGID0eWIrxrqHsAixRMwzKEyXfTRBm6ZrHTj+++Op5HpSXUdrd820md2bhSUsH9wXqX1nDa6RXwtoM2Q/yTlQms3PlzYzgaXAYXzbnXIkvGw9GD7oZGUnKztZ2cnKTla+u6x89uxlKCJxubYLSW7pA53peSICCxmFH6RFRis3+WYoSj+WaMShB8IRYw+0/YUYeANezTEZbkvIAZch8IS3YZe1MYYlhi2hQY3mMJs2z5NlUATD0Qyk5ImoNPJSULVce0WmF8kiKhNe3K3v3j4lrtlUtIcrWWvVkNdcr93giYBph+QAAbE2asgTHgk41v7cOcqIlaAsyVTFTjVRhZy3bD3FBevg6+9JAzDeCVyTD7iBuzwXq6w1llDtOs62ixx8SpXiS1Eobs2Hn6tMVCevDvXXBZG7IHIXRO6CyH8sUfDlCIPOuuysyy/CuuyCyL/HIHIXO+5ix50/vNNYOo2l01j+aBrLh4odd1HjLmrcSclOSnZSspOSnZRsRI27aHEXLW4lgy5M3MUGujDxxwsTv2miKNUjyA6duwnPs6p5hxiyVAigUAmr3t9+9EQGfs6WMKorPVh1Bptlm1doTRbXGbcUwfShlZx7hBNy+UULHmJMrPE516Y+RmQhsyEKSQ2cmQE4A1pQ9U1BphBBYfkNhlJzOCXnorZx91TFIhkyhvjkbLIyBAx5A1gRhSWtajYtszjBKGi1oNZD7PjGCRtl9zDuPMkLlebG47RPfBJABaRO9luGmCA1VGTXCcDnISYZu8cmOOix3/+JrtC2RZrDBMpCEOR6kthYLQBlV2MV15HITbUCeIimIqiqCsfXQjpDs5SwQwA0AldiyJ5ciszBAq5OkaBsSNdZXVUX19YefMLd8afR0ExfCbEyVz3EBxMgr7DYQv19cQ1OfGmS5dAWZtg0Bgxcu8E67B1fFLFmQjvkA/oMbBvNfLjXCsG+ttqqioDRTWURD46GByCY7Aq2UzwmBaydQQWWPgl6mdyq/GtjQK3JASm/HsPO2DoEY3u42g/oqshsaAgkOVcwIex6vjvQ2sNqMTdVRqBdTnnG52DQKCyNoo1ICX0EXP+FSoQONjksS0tbcUkHE5ApbUbEVF3DybGjGbKf1BVUpcVkh4IKunjUO9PKHC4lp4PmaiMM13ARqR2eD9Ip5O1k7DTn0SIosOCaD9kPUHAVvTDCcJkA8iFD0CBVFRxoHxIgcNBPrxOVzQf4ORfRQIJ8c3dhTK5P7t+PVaSHVjgOI5Xig/t2/e7bHwb094CcVPubQyqvoSjL21EPdsMiveI+jXp9F2LMDP0AyHJga3G2EEkO2COW5rjWErFEh6PeTR86/BOAu4DIv3vnXy8JnE5m7I4dIMIT0mO9D81ZYwiEKbsygB/lpVVbXU9n8fWvqohf37HfG8osFtdv6ofBj6r5GT/ulm/deWsHPpwLrF57d/9m1GN2eiKLV9Zt3aBtaA2Af8o05cXS0zkJ0b07b8N1udmr6YyMTwEzxhl7o97NKHszynrhMbxuQT1ErcEBtNQTy2ArZvxSEXhbInhBGURYaAF5YZNErRLiu3OGQaCMrJNRHfV9idS3VoA5hNNxBZHXWpselGlbTAwFpmPwVSBalSYvA5gyzhCmmEGRkBRnlMWoW3CsnUJmyQl2IjL3ulO8gLFayMsF+MbQ5M6cIEhKUX2HRgBWja/pTNYWOR6dlTNZM9uJkxp0HqrgwdOnz/Z0mNMQGKERz/lUJiBRYhkZRKgF4REBqmCybF0Z5gy9GpLuBnHuT92DgxrI3E2FSztOOGT6zVtE+lP7i1XEW3U5V2hiEyguL43CP8mBUMJIC97r935bwPMLBWPn+KTAmhdmAf/OkhgdO/DvHNvoHP79zzzDJwm0LOH5pQQQKplB+0hAD+UFPBcJtFmIKXyRw/OFhHfLAlrqK3hrKuBJqvHrUF4r9HHYkTvr0i0I3qJsaNFhMY9n8NuGCiYNW9OdTms5/Xr68vnZ8x9PqmOQgfotConaQcJmAs0RorNpIfgFqnvgYswAhAyqhKNZdSkLUyJdZ5hMKiPwASAZAWSlrVZSde0Q5iKVXYpijmWRVG4wmtesr+K9hVMsVFM/ApTjIY0rvLXZaE6SdINdSoaBLf40medmcDzZd/Yppj0hk5O/kYkOfuPAMywNSa6aikhdTsVCZvFaK2BLWkpujnuWARp1IbKdlXZq3XRzWd80kcAtoYkBFa+yUtfUYoKBIyOrWtpFbEYYU35hAeuI6aCKW/AsVimWb0qAt1412kvbbqYiAgaHoC6QCwxTGxntEKC8Ab5AbvDlOBcZT0wL0HV9sNhM/ibQy2aXtuF/w7qQmDnlOvdFLMFtoRWb8aLPYhEVgmvH7HEn9oDfXohELpSKKQssFw5SE/KvsfjcpSim3Mh0tykSxHMkPsgMPab5QmCineBF6+RktsPkDE8uQPoDEjR+K5eR3mVS4GWLJPGPlnPwyiwTEQo0ksllglYheTxSjn5K38t2rqGh1zX1h2wvTNsvc1NzbVhoTdxF0pDItzTJylQUMsKSdG4ktvwcSGGumUYNgWFDnoBPavT6cDR604d/HOE/hImG1Bv412tdYRjQZ9xB2QBsuDBpEjasf5KzX14+xa1ik285WxRi9tdRryxA+uBVhVHvO0wKtX9+e59/N6GOU15cxOoqg85/CPucvA7feHM36G0f3t0gzdHvDzCbuFQgU02aYHiFvoUg8UF/7VsEU7INwJQwwa6NadfIlkBISlofVQQTIhPe9YBVXakiqa81yI0p5LQ0whv1HusUEegBDxdrnkycpZ0uIavw/kyp+2+hmIqMb+6/xYYyvpngB523ahJM0Dk0RZobV+dus/BwH2xY9VQC0H8b0U6DXVoDUwvH/H1XEgw924UWNqwBdIbyFVBrmVVRfGKyzNjk9RvUfF1Pfcv0cYVQwD1nU+FYDtpJVYQAhkoBC+srHNbWt3GCE6UutD0Cr5+/ufttsPzf7U9wmG4YFRw+HPMN5DAJF3dC7hy7R+S4dEsywR1B5e5mYtOy6+MLDtoV8rXCm6AUv/XtrUy1UzmHPlenc+VCdY4o9gK6tskQGsvq4qBGvZNR75z+dbNFbwmmggFvH8W0A6wXLqT4xHjGI9Ajx1g2QxuUzxjRWiXJJ5nFmgW9xu29fZ8F79usD1zMWmBhh7hGMOwfve4WDjzU4YOYDJVQAVBtfinGC6mNaquk8WtVJwQaBoYzlCCmtzaP0n8oDDHbqodvVooBE4RuW43I9y4M/KuY7l4U+EpMf2cFga/EtK0Y8MaJNAoBV110RYC7IsCfWRHgFUIOywBTxB+Uzd9TGWCjmLiGzJ0td1FhKbVhp2cshssoKqeVOTo4Ou59+Lo/YZkfX3LqKKzFgDV/LMp+C3yWpTPXwFnWG9Rowy9lsgQWX03aPgsumMUKK7e1+OakxgiZbYDCyt55IkcmddCSTr1CLVU6YpKwn58//QdUBhP+VpAW7iNBRWFxzSPjP+4P5VyaRTkFfXbU2+9DbbiVJhjOarTDkgQyiSNw6lo9KHjlXr09DGMKddm0r35svZA1t+hqqd1GPcBaQliwDa+DaYCsqA+41+/dG2rDows43LNEXeHTN1j04D03zXbgqjDXt23b2uucpxtXfsrjYa3R1mUPWn/8RXcfA/9sVogEBdhAq7KIhF3iXctx19SeUDFsU70+hJL1o2hp2q5hzYW5pXqF4mAmbN0aG+ohGvnl5dNbJIN+BO1rLsyK6tU+wxa9ay5Mp3R1StdnqHRVJMyT5LPQr8oiWe9Iwyw9Ey1qzKErhtsVw/3yi+GmwixUS77tT+fnLxj9uIMy/uOT816/9+LnV/ifX+B/Hz95+uT8Sa/f++nJ6WNU7xaCx625Dfgt+ytmi1e6d3CrvvU8+r3fUrHcndvu4HYH98s4uFMVt/gLXtJZYfArSmQ4k/df/HLuTlFX4707HX+A00F5YuNCxLIQUVtGeBCloMYMxZB/o/WcuFhFd1C6g/JlHBQwWVVpxlpEKotbzomTKLYhOUSxbesJcT7h7oR0J+TLOCFgmIzBOddyOJ77OAk2sI5npMe6HeO2sDsz3Zn5A5wZuM51qzMD1w+6E9OdmD/sidE6GV+KQs42J1RRE/bq1VMWQSczxLLqjJXukPwRDglcFrEhmvF0adqki8tg8RulIfVfAniAQZgoJCJTlFnkISk68dKdnC/65Nwi78NmYnz0pI+nPJ3GfJekjwRbvkvOByXKASG2w1J/sswPmlIt8WPtLBt5H9QOrzYolbRWHPklk/8CmosBa2gmRUGZA9j35oId/21UMh7eq5ElPDo8eiCOHz76aiC+/mY6ODyKHwz48cNHg+OjR48Ojw+/Oj44OGgkGZzFXWpKl5rymaSm4AU2l2eSc60rUWnPncdS/zS5Ku3cmQof+KP41lYfokvTvZMeDopuD9YYtGUM/Q/Eql/h7XvY5zO4gySz+S5sW/u36OoSIcHdmof7d2Vmd6x5hf6TcfFqhmM3yhpL320FGvy9pdOOkXaM9DNhpC7Hbz1phzcsIlSxxxdi+dlcs6iG1J4NCGO1itPSfdTwAvIZ6VVcAn8R1k0eURPACrIXGOK+nw+MlfCDLERB88pXy+WNdDm4yNRVIuK5GMBddWQBrmDHuipzZaveV7u4G5hYNJ0+wBbORMGnyZItypSD45XHeGjPHrejkvhh8iyDW42FgDT2sbtaYsmw9a4t/ORga/yg6I4rLqVorShXfRG+wU7xs+zJqx/ZS/x0g0G2VRqdFlLMQgbFPPDFcmVA1sWweSjfqzQvxEJkGjDXRHYpC5URwAiASUcS/gv28RzOWmYx+91wHc9ZA3rhONKFWA7Igsy5tIi+Gjs39u5nOHCkQoJHcGx8DreRU8AisSDeHsyBg/cQLkK0lKm5rV4Sq2jsLjCENNHr95aCF3AV6OgY8Y94YWCksKSlNlxmFsMHrUw3jzXXoCqe43cKQwZwLxrnNiuThC2kKIC1wpWQlp287dTgsLURekgadlgBC15Hpztb4u0610e3yl+V0zWNWxS8cjogUfVOat2lImBdEAeIzxFXPX46y1yX0zF5rGqa3IapNvU310GntXVa279Pa/OHFfatBRqrTsFeXanAdfsEgeO0FsdanNJSV7y2H0/rnV5ToAXhPsEG5/qiVrKudbwOhpwBmlimUlXqZLlZOL8Ul1JcWT0nFgD4nM0JuSIHIWGTYdlo9KfDoweEgiWissACOlqXAtEbLPmNjZHjVGZla8Dh3J4rCfDLgOZBDX2kIXD7iutcFiJkbu3wVI+OG1dq/cQeHewuQQJWXgel8CyqgZbQhvFbDKKQsiz88nq6OidY54oA8bIj4M3C7JVuxCi2ExINtFVfP3UaLyjtBGDtVF/Ek1mraFcOz9cHg2/44LfTwX+NB2/+fGcFjjjl1+6v2m3Lqg60vcQZHGQXaAgpCPCiNmA6OgJxhR8tLJtbWhCWFK0iBgx4bxZcPRHxCR7OWEQSQE2uqlgxIFYZgr2yFWFSUel/9pvQXw4lkABWxJywUxKEhXD40hiKcQO8S30idBZWBwnGtg9diXwhENnJ92RHQUEr1w8cBohzVW9vhEyqTxh20I8YWrlv1rEHq8fhxoVPm0fFihZAH6xt3lpd3dvKXhi1K+jVVjqJxr7nFAaCUgIQmGto+rfVWCu4lpua+krXf3snvRzVQauaQIKOvnAqO3DIcYEcc9WZWJ2/N6sLVlcR1wCzrGM3762snloL5qXg8Q4Ka1aZPGDivovWCu+FtpNeDeteqeJC5zwSn0yFdYMbw2hrauy2+TdU2VpHnTrbqbOfjzq7SskfX6X1x2Gd/+3ssfMk+eEhagrf4tTihRnzaXR49IAgwyIFTKb9G+5Xt+FuQTa5rKwQLfgVwPVyLR4d12FT4BeQd5CCglmbGyQdNoIBIEexODF3DwfWfbe/Vbmt4yofHhzgnONt3xVZvP6rfUocBU/cbQdwdLC7St0UOHW1GsNu769Rt5D2dmuLX48hz2lbUtQMsGfrCVGIjUEmEY8pB0chvl6GmLVzoYfscQBJePTw0d//dnsLxoMCHR4cf/3wq0dheYyjR0eHx8c2vWtN0vAqMJFNHgapDMMcEKQrzqIx4oOD2wIC18Z7cFAbLNFLG0nsoA19MJ3nx0Lkt9N55oXI30XnIRgdioUQmrzvcoN39d+r6cDc2jWdNbNep+lA807T6TSdz1DT8ZT82Wo6xCluo+tsBOZ16LFV8UpYk7uuYAItSCHm4npLuR5RFKr4P1RfDDlzvwfvjhWdxQ1KB34iUmmKxdryZtLgdrCuAJ5rIHv93iC7BQpXk9d/9OjPWcrnYmdrWkLrdzalE0WmNPaiq+weKp2gqZMgT/aTCBgc3KodvXHmDdFSddHJlU6ufD5ypUHDn5VQobGFogV8k1tSl0GyvOaD3w4G3zhffl3s5Atl1Jg/mB3RSYQY1OpIHuNzlgBoKp15HEx1Z2KHQj2JusJSOfNFazWcYFjwYGd5UGPPH10YPLY5Ft8TQwYK3CEpIMyhsa+9i3Sgt4nXuR4rpysQBC+kKl1tiU+XL+CTsqr51kTFbuvRkBktnXbCoxMen4/wWEfVn5UUCeWH5Se3sU2o0MTYeYlWbASqQ7HqhoXvBClqm8SFr/jSD9O+fRZczUfr227LdfTGS5jsuDo+tzqbl+TF4x+Cd4xi1TB2lVrtcuSji68fhXFfhlqQu8guSPKtMgupIve74wzXe6qhDnObfPvJpNZcGE9mWAu1JrN2WYeGxFrpsJNXnbz6fORVO0V/fGm1NWXfD6oSW2FuM4ES44AdInFzAdeVT4eU7MOjB8cPYQm33XqwVxsgj8rmpLi7D5vE2NrK7csBdbi7kGhw648SWFtHBB88ZS3MF2q2XEO3Xkj7AfoDXghTSLhZP1z5kEXLCb4T1lJagyDiIHZWv+Thdi3wDhwP2qegCphTqvCIwOGZCpviFddEgq1v7Eo6YOWDYKDbXaf1CbjKD//z1c/PX3C8xwAXHbRPGvUjnEmRxJrqpATVIGhmtlhoeOXBj/j1m5q/9s4QQoVFxpOhNf5FfApbeGcYi2k5B0duvZJWjYQ/QjCwNj6/YkEBpjW80tZ6edhSFaVRqqOlLEdLVY6g1MSbm5s3Ny1XVCExksZUbS3wBFXwLYO1dXB8P65KhqdXt6BYh+xCJkmLA/8UxCKQCzVg3Av18CT3geERc8d2KMSHo+wVvWSvctVuKNRylX0ZX6jqDvcZKuALEocWfwA1C7zBgl9JgJTvooz8c6h+7COUx0JdZR4uAuu6O6SPv3glEqpYKx5TGmaVQlkrO7kVGDsrE1wSl0FYS1/FJWi784EzwInb5cF1muNRvISy27HUWIG7uVbKZ+T+BeoW4q0+HejO0MAWoIS06drLNilhlFn9lS6MhXAhtFA6UrkYslM/42TZ9yRQQO5rnshImmTp1o9jorDMwJQTlzCOgtt6sDxjGWhJCcmKoE1FItCpMwgsjgvNhtyHEDWy9EFYHiKGXFumjcjZpeS0CiIe0xhrVAKymMpBVlYcfI4IxJIx6CPttDLK4CEmdgRUo9GPBhVRARDDQ8j4con0aSiabckZBokeWfx7bLcfxGYrrTW0n1tfyZuxK1conT4VK6H79Tm7lGgmTa00fOtdxVr+9sHqDQFN1wNAgEzhPkAOFellBB+dlnNNF/gaNwOGpFHhorarU7jsYdV6b/2hKgIbAbPD/aYK5c9/Pq8f/Rr9T5eurudfbM1PS75rN669Am19NerrgaYUJQFTlZxY9Fm0ENFF/XbEZZmAZYa39iSsk72cgfcbaYFo1Xi8qOCQ6os7HA5XJGK4itXyNoVLkKncAlS7cUfbtzLYyfYlwHrcTGU0Zle3vhcUq0eGiRXrd9DvjK+ebu85W3owIrdJbHGtxjTKJFrPYipNAddVb3PfeX1ZeDLSZsGngpLwflBbi7gPjimQ7xX21ZPuB46fGbiKXaHKHYrSOj5Hs6D7be9v1gq7Hwy/qlecP8RTYFQ+zuHXb4gqzUoh0fVeNmzd8BHBCi54FlO9+IJnWuLp5zIp4f4P+S3q18UzZbuCUsJ0pOxlaEtmL+HXpgtr8+b7wq3rAAX9F23LIaPys3HAcqzXBFWhQmiZSDzUfA7KoGmb3tYCtMEGWTMB9oQMnZ1y/2jcEPtLc6MZnxkB3itpJE/cODbXKTyopfgF43sQDO4BFhLEXsdT0Ixns3HaMsAz+2Xbhjl3SyqTRFqwbHcfjG7N4AS2VFI8CMf4qJGGeFhn3/CnXcZNA3UruWWg5kogJ8T92DrKcJgPDhrjfNCQM/g3VK+wowRbUrXUg3xWJkaCtmZPFDazoF65yuCaV7Dg64dMNBNme8aqBK13bbpnmOsZ5gnfrFyNQd6KxQZgT8fALkO58AM8JW0afmlz2ooM6DhXEm4GgVKIrrTMmSd4f4i7W27OOhGC+V6r9F18vWYj7aKitYuHdgAxLxNCzZtcIuxZqQ0yNGCEiYyMHTtdbPI6qhG5BtNsuzcpUFWOHj4MXc3BYtcu5CVcaxwsuoys37wZ288LEaGrgmq2o68A1aZ5ptBZnMV0Qw5EfkIVVIDIrqDCY6TSnBtJgAVtU4h9/yvXsnphXhNPqERppeKtjtU5PFYtznkJrDiEVvTXBkN1orb9q+6WmrVnRH5Wfac12SvQZkNh7bQYR7RWkxES5ct0WaFi9huhkz5cSiwRhZJ7TKdpKRMzkLXvoZNGwnhSmXHLLSwZL58jAburZinPc3t1wn83nK2H77zFbD1eTW02MCieJBY2dDMU6JbVmy6ry6rgcnMBVYurWcfLYbaur2sUouYM2XNlhAU7c5ZB+GmpWZlDQCDu0/e03QDp/HmCFC/okBrSDRY/mwVdJ3Vfrwzq7Zro7VBr+AoJrE/9kZker17krVgD/N68rzsGuR5oVwFBEHKhy7tohyJxKqxbCJe4FO4zFU1zMYZbbOO2AsuV1G9KJBmHtzSDOVW4tRgp/cAxx2DafaJpdGVXZ9adYs8Nq9PZ7hm92eQbbbKrN8hM3f2hRkrr7ge9PbIbFJ9bd97/xjUmiNk1pAQmcIkjb8vqy+Mu2Bi3fjXWRhLpfcw6xHAaeAwnZ+VtP087Xnz/3vllbTll5pTf+kq30CCy6u1ITR4cot0zJHV905TYAlL1wvkpnX3ggZcBmwlkaXWTaMXpjCEAbmU06BU2LjluVzDwUFAT2HuRzYGS/InY5q1yeSGXNvJczx70T8PZBQ99KNWO8Rx6D8bcPtway3Lxc+evIulgKo4HAsE1otl9yKC5DYTTjz4M/u8PqLO7NlCiCTjYWemedCiiJLS5b1ML9j9mDB56Bp+rhj6dXohB+JTnuk9ICqhvT2h9gbInwVZPbFCsFs6f/EOV6FHmbCGSfFYmq+RvlRJc75Mwuj9k5yrm6DoIJz1kp0GkRSX6hP0JrF4eLe7iFGABaC77d96iHxl6u/mTnN29YxsOF1w/F9dmv8/+JLIY/n/SDg7hD4GfCWokojBrZoKHsDaLjzLcdvYXpjSsR5QInGU+5OrwJOIKUKKdl78XUoRXeHqHw4MhwDnz0ixA2+7ZRRwYwVMU2FsdS01lSC9UmcSg4dhXWZmDXxylZG0OO7qM2kzxgNWt04JQlv+NABU/Bz3Iqi0fRAmCToJKBp3J05k8ncnz5Zo8naXTWTqdpdNZOp2l01k6naXTWTp/IEunPRG2CGqzkdawqwj3BHEYrJUdsO8LqFohvf6cDcxCDGbJkv3opGpbriTljdaoo4qjOnUaA6oQaxz2VoRuTeZ52dZ7kQjSw6QqpEE0J8xmYobPPc77XllUMNZkxFwbtlBlMexRRTB7wS3nhRYYU6u0vlp0kG66vaBm2zOcFuqqFpykzwTnAj9IoVYSDAbz1Sj50bamQYGGJIoUlZZmty5LnZIwfYa2S7OgFFGf8G2TiUDGUVz09gHFiptUV9vo0cYF+gWGCAfiUlQVMjC9jOc+iw4XgwbrFyyWhYggVTUcO4Wt7epAkmmB6Bn4O9x3SrBoBeZMQVzYRVNrH3aljjiEsfHLmHEVLqlDenIqfMVl2y/Cb+Er6/lIbbvbrlfTCu9VB8fOHTpoD8H7S9T2X7VLMfbZrdPxa1uM5Vor1P+AICrU/o00gY+1ldR2CbgOCxzANQfMpVBA/nOqKFlppjpaiJQPR9kv2u6+23JLaUFX1L+u6A0pal7ygmdGYPkVSR+EnGFubOKmdnTnVUL7UeZyVkstQJVCt8tSldaTUh3RUTaTlCFnCz9CmkDF+IKbs3ChVJtC8DQkL2AJv5JPp9p3qYObZ/0gIVikkA/MWXMLnlxSujDWkxllasaCDcUfqfpl+3v2NpR2pRwleYjc9oDpAFnpyqajkwGB60T2KNpC1s3jk/RHGTitTigLkAyP1f0K5wauM23AX4KgzKCl2dz0ZOmSxumjWKyz4JBPhPkrPM8TWe2lY560Majg+9s+drFpH2Q27zcL/VhClZqByLuky5Ww5DCDRGB6TCLAXLrEZQkz6YkdU9+UMBItyuxC75Kj9P5cpJrEuzCSWoGPoFxn9fim3/unVtmYNmF1rK8szZOQvCp4nvuijBkuCBKUPWAtC9KiANpvrRQs3epzaE+394fUHkuJboK+d9fWsoS9WCaprOzbsfMkUR+rq3rTX+POOQ1z3Nrzzppr0wYB85rcoQECTOjqIa4to5akfWIzoHwzATwX0sWprTtYPpuduAUtBbowLZHNFNzlwOmLa1696MkkOGDQL/QQZN72Q9aRQjZd1aEWrCi9f6HN4jmhe3oTenOKlx/hbhAU4yIiQjrX0MFpkoQuPPcG3EoSfgcnjuImDFPH4EWXPHp4cBB2YBRWPEL2l/Jr9pAuv2ggr0wg1jy8/UtmbSsRg5viShWxPmF+f/rM++H6Dvmtz6wLGH+0/5DZGeSw4SP8F3T+Uim/4BHPwPkMnHLCs+XPswnOPWQ0leVVvwR1449VK7vBQ/qKvoIuVFlFN6rzYZkRrquV4MyobafaaSC7sj4cC/K/xhFhIhHbcCcq69mmBfoWPl22csO7xQKtZwOr6VlqXAZLY+tV4zClZnv03b0hewJ+HEgMBbcOKTdAKsAItcpoiR/7bna3+1f5ypo9wystyJVRYUbvQ3VSnbkIKjGU3UaNCvsg56kdKw2m9RLGtq3tRbKIyoQXd/cDH0rb5Bu66ro0UX9T3dkxyErXbcDuEIZrL3Cv9YcoutXWsBkct5iKJQgKKtxn4xCbfSJUwzoYYUO20t6iMIW5MGzXmDf+svexN8odsBUqpFt+rtDh9gNLm7ItgPBTPf7RkOw7sYTw/vJa4lttAPrMumoPoSJ0C4uqPXjdGdh/VAO7s6k7m7qzqTuburOpO5u6s6k7m7qzqTuburOpO5u6s6l3N6IwUSIMW9M46zZaCiW02mA7XrqfmMxgY1GQeShdW6DBIghZ2vB2CGqrmqkognSDW9xCdh9tSadwQ7WVXpvDCjT7cIAt4yKxXQ3u9qkALhejFvt1WU/xhjn4F6vZ2Dv+qyiobppgAmCWKPfVQ6kIG3oW6ovgtyPlxtVsCjMaF0pd3AJ1dr114Ia/Wcuv1ilU8qunXZppl2bapZl2aabvn2aKjG31PD4J+D2ZFIWcz4XVFSqJgtd/wIOQxVWyWKQKa4Ojy5dY6+5qXsV9EDpwbDvoWTxbMmnQAnD2V/2my+tGu3bVwPMitwbbMim9dFrnc+/kWCfHOjnWybFOjnVy7Pchx97c1FC8wSMurgkirGUtv4eFsE4UAi80DqFYobcF3xuOsifgW+DWgauKWBR/seh9XipFri8C101QhA1H2SnzI6hCvEFrrGKFcZ4IuhrwJLlvZzAcZXh9NmiNnxO16FUhEIubKXIt25NGlwl4FocxPID0o8XfDREMaLYVsO60GlJt6ejCd7V22+Wy76cFek6L4ocsQHdngrbBRmytMysM007mwtzdn/iwO3E8DxRfAUs7CLpw7K7CJOHqLYzJ9cn9+7GK9NASH+Cc44P7BFw+4Fk88KD89wtR8OxCFPo+SgTrfhu4wQzc7/4ehp1hwrN5SSX43P36UfZzKm39syZZsEKVxkVwz13Bd7jbGUKbu6VYcG2DRuAmwzDhgufiZJRNJpNR9naUMTbqIYGMeicM/4YnKHd7UOpjOByOen33HARly+Ng69p+dpITP8GGwyG7gZ9u+vR5K3RrA1jzoXXjer8B1KqTnJCgPR4cHA4OH54fHpw8eHhycPBftrsRcjFdG+y3QWGKMQzxu+BnaGDDzrWn8JxuwjdGBf9n/1EbJXVCjUc92PNgqtD0xu4q6QPDulY0/PZCLL+bsP/v//l/LUNoFEqwbzU1oPA93dSEam/iugxX12JoZz+k2Q6/xbdslxYLAEWpDe7UOrUMC2ZLL2DlFaB32/ouOvZqV5iAB0/scZns1zuqfRz6Wo3B27oR6zquXoC+N6MiC3N3z39aosa8t8/++le2p3ki9F4Pw6YiH7dHbp8HyMzEr1Sd3Q5HGQJuVigV3OJ/+ov9tdQEwt2EaGQ7LngQgIfxjRG7GIA0G7K6GjMVMbbo9UgB68MoLUW0KI5i/D13HDwmF5BX3wJJWFEYIEmwuxBd3O9jFJaSNtbMebVoDN0Us5+gviGkS3AlACS8pGgHYjFT38ELDbEK6SOYDeLC9JSqQqJk91BQTU9qls7oh7U93gQLvq7shVvxqprF+y+yLZ+wjrLoVzCNbrG4QUmGSny59V0pNeBRYQAf/z1WN8COB9VmWs7n0OoNEjki8XoI30Y4DBYOsygoLaMERPYAb8bxx0JEQl5arQSvW4ZVFloWut94fSAyKkAU7thdORTDPrhKlppBwsQ+KitmNf/I4eKO3VhtGkUhyM/i6+BMxVxmGWkTG9lBCKrbfg+5BmLbvFNax0Zew+2aWPSkYqMiyZ6R5hvMjcyznQdNfHZThZggpEppQ8Qsq8owbvNtUlg1FOQBdTWY3nVnBTYLK2hU5sjtSrSshMfabhnjqa4AePd0VXaGzSjbhRs7psY1Wn9t1uXHIivTVCWKDIZzJ4NwiyIFLMXTESxhAO9cFzcA84wuIHp/LgyyHpbDGYTSvY7uF1IbVdR7cT+GNREATBrvPAdIw7qPhU7CN2MRIQgKpWEpFqsaLDKbck2Fc7AmmLwUWd39xn6QtnKMWYhRZq0oac0blWt2pYoLhJBCgi0EMSg68TUxTIWMjczKKl2QyNu3tfmh1sSz9rq1jmj5HLCyPcy0ucKtshaFxJRFAF2CggpJIpIAEBqoUUvM65zLS+e0I83f2mwWFotrK/QwDbWETm0GDibdFJAsDb6FQoFzAz1G4F7yJwGlYZVL6dZgusRCLZOasjBBZeQvtIKSVJMV8C+7s5Wkv8hWysDUhc47OoT/aLDgZzOmUmlMPdk35Ut6QzAVx5DnqgEkDUxJENlUXqj2WZ7Fowzz9f4J2qgtxxDmLpKKUdjiSZgJv+b0d2jlHVp5B90nOug+8weA7uvQyjsMvzXGS4fh1wWlu6B0F5T+nILSHYZfh+HXoZV3Jk9n8nQmT4dW3lk6naXTWTqdpdNZOp2l01k6naXToZV/GrTyxsVtAk3BnwNo8RYk8uEoe1zBihOuTXUvGOFDKDiKDZEgMHhfQWW5rMCG3UAhzA5EvQNR7zDeOhD1DvCtA3zrAN86wLcO8K0DfOsA3zrAtw7wrQN86wDfOsC3DkS9M7A7EPXOpu5s6s6m7mzqzqbubOrOpu5s6s6m7mzqzqbubOrPz6b+TEDUATYMjBrYowsh8tpNfqaygeH6gsUlrB5DtT/8hN54sDoQ9g68tsue7bJnu+zZLnu2A6/tQNg7OdbJsU6OdXKsk2OdHOtA2DsQ9g6EvQNh70DYOxD2DoS9A2H//YCwn8OMaY5pfZ8uxFLvMlJCMO7A3Dsw9y8dzH0rintwH73OnQA3qAZY/Hr1SnJwGfgnfI1hH0xmMAJQRyHGtnLBtyXS5rCB3vPr1uq0EDK7fv7mQwAEVJYuMQj5GzFjODA19nNb+IBgh2KR88JAYBV2veJDxaXE6+YhosARIgqoqwwm/Y6AAjQn8C6SLpcsPZoATKviCjPEUBabw+ptqAL9HoJsR+3myur1aV4alXIjI6+hV++vHnUHai60b55IyNocBr6C730H9Lmt9tXapXuSEYvcMMZ3WSGzKIReqCQe56KIcPNbFsoQJwOb5/9idx8eDL55uE/8D1ITg1UC2YI5mlvgrgCFyCZB9U6+eRgM8+sQn+jrg5t+DwLXY2CsGcB7gV7aondhog+5hSPKkMUsYaMw7g2AXFNuZMruAve1Axbx/lZQLj+uB8GwHtRIy7tVVlcOT1GYOlJDQndmZbB+ukxTXrjjnRcqzVtTnwJAp8ODgwNYJtRFMEo+zlUio+U6uAOVuCQBkL7WK+rFeriZWM1hg09bXOO7mF+F/7KuIh084UlSd3k3myKHDPxMYzWbJYrHLmDvPOBKJZRk8bP/vXaEd8BHqHpmCS/mIjRiKG+rMHIGHh6X3Ui6ZF6ouIyEbymuIyFi70YHdAp/jkigV8nFgFMPVQnAZZT5D9hLEXnCI8fnuVv6wK2AyZmV1moowxrqS9h+xpAvwzBZyD6YF2R1BI6TWZkk3v2P0Ggpz9DXlSTOdgJSUDlR6V8c0L/7EZIPMRtwILOZKAqE8yKMi10ynreLg8CWDPaoSidtg9tzIyATqxSj7Kpe0gM8KfV1ClPtMQ+L3IZXEnXgNu65KlCQFzpm2XrqX/jfnCXobjM4ln0ls5gyjWFlrcMnmHhFTCNMOU1RG+CGHbNowQHBDFTEHFfuQmTVHQbO6G7LQpSF1CAlUPeHuA1ky/KoUFqDEa2JtECTTdA/N12agIhRLCc8zRHVw1wJkUGq6riSFtAeesxiyFxt/tBnWtm09GAxwOZa0DkQsxlk8eKOSeMOGHRIaWUMjAibbN/Sf223fJInBV9A+1IlJMEGnPxgeHAYSJyQsR8MDx4GGw1/3mDT5kdbYm0h++BTBdegUGkHjnBXZriqer+WWD31Ow1kfeq8yaMsEhKvMDm/8AqlDWJRyEu8lGLHNWQ/qIJY2cDRFtIaFLhpmQFsq1nmMvJlWmgf8P6W33stLSboKFsdBNy0ggRCQzihwAeh4EdtQypJ6ndEZubRcU20HhwdhxL16KtHX1Mc4pbLPhWUVr5u2TO4SLZ+1WeJAsGw+5pDSr2mhDmdYkK62/9CjDL6mv8UCloUPbQtxOnpvToz0O+7gscH3zxCUYooXCIe8xZV7lymYAimOWvwyiuumX2xTeBXJ4sbMYCoZ81GbDhfD8D5Cqa3BZu9/VASro2Dqn2f8Tw6Pzw+OX5I42lYrxdi6YCvrP5Rd+TAWsOm9cJqZL3KuAlAyTCyZW2944MHrSIhlWg2aKgsBZLMZhVH9noYUTA5gHtWzpAyjvo03bW5D9moaE2vSes/ZXORiYInTBSFKqprMKRhZPYx+EFQA1mNKK4R4S6roz3fwOd80E9TmM/VwnIY/CJmbBa1zVwbxQqilGu9EmfgJQGFGuxTUdBXhn6PhTbjdcDEZ4+dWLYtV6GbjcLwua/Y40x/9BjRJaMrJNVC1a6KtqQhP4GBedI4btkyyppQYN6XWfwem//EbrnF3cJjxd0kMd9Hq7KIBKKs4hexONW7QzyfPXa3U6aiGv2KAy6knXfd+89vY58r8wNMudrgGwh7z0SRDXR8MZgXqswHFlePULl7tQapMAsVuxZzQbd5jci0d0oBizrpXQ/8VaMBz+XgQiwHNvSOuhIwsxei0FgKDO/vuvfaBuNfcoNqfSEcXPUGDBK8XvSrH3XOwQ7t3b88uk993n+L/x1fiOUNXMfBM0pTKoukd9JzwVqeSx+rlQr71nBFBZKfoPVpLv8ulqcl9P8ap/Yz/HGEfwWNMY+fKMw1qPAgOT5oWofUzptJytEEsPtEXVGwO5EiM98XAm/wcfK3o8r9S30apVkE87hPn7yPLfFuo8pxcEQk4aSqE4EP0W6GjgWn7D1LHddu45EEZTZT4aFx1PzyyatzdvrijF2uTtf9pt0FaMYhMBU4JoyYW1MZ9hOVlisxHVDhw4APgaYCyTlwrmYSPHWgBMGt1YI+wA2btG8wUMi3MBORxbmSmflugmYIjNk9sqZoaZIw2AAWDNZ/K6daWPeJuxUCb3sgdGZ/Jh9igfdI5Dzz+PcyM6VEhZdAEEkKg2s9i6EsH6wTpE2F9xwhHnkepGoESP737l0e3bs3pJuMwcQmtmswyRZSFBC/AbW76rdvE/HQ0Im4xZ9cLPOFwCVmqNtbiddnk/uRKgCb8/4J/KPUcLggt6EEj62ekPpY+WiPLOor3GzVP89eWTduRbNhikQi5jy5j00HajawPt/7yK8SNUdiqx/clSwLmc5dl2O4DJny4mKYo9TmiTkX16Yi1B5yypgXF+/T+ziR84XZ9A287U73YyHnBr4wEyKGEoz/d9A7nqlcaZNylK/2zP0obIZZ8yy9rQQ0yh1oSFKc6BgzJBFCAGNFmG0ivG8Nr5TXQ6qw8SBvbTlHi5mOBB4ADJye0XD69gRTElOaFwIoBij6UmpbT5JScZ3jqMLi6NtoWnXYdd8XfGy4J/tWQ7RJBXAMftGiOnJY7hVGZ6rLO2Ec1KKBeuh86zeHMRRon+sFXHOld4PSo4Dy2mdRojLR3jFdWbxiscgTtUTyt2MFoAAuAUaejgV3t8dWV4JZX8gS2BbG3PJCagGrLLNZwcPzX+kBYLDdzxMu8XocEu1bK/5e95Drekl/4kUgWAoLpSHBrff2LfDTX4rk5gYe/6sUBUi6NyBjKbeWKhJIbV1m6KbaQIB3X1qTZp8FVTfgLqrVhWjqASUO103HSaJsGYj8Xt8qB9V0MGnPSqjbDdbxejTMU34BQmgKipqYzUANwytu9oiEepwVAgFgiIiw5DA40CEFV9X81PVp0fAtWPQAzE5VmnCGoFZ8gjmkMknke09k8Ay7ac6H2p5GkcjDua6YEzVt7scn572bm/8fOmdRUg== 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"}},"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"}}}}}} + 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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent, keyed by skill name.\nSkills provide specialized instructions that can be invoked during agent execution.\nThe skill list (name + description) is shown in the system message; content is loaded on invocation.\n","type":"object","additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]},"example":{"code_review":{"description":"Reviews code for best practices and security issues.","content":"When reviewing code, focus on..."}}},"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":"FirstAgentStep","description":"The entry point step for an agent, with a unique name.\nSee AgentStep for full step documentation.\n","type":"object","properties":{"name":{"description":"Unique identifier for this step within the agent. Must not conflict with any key in the steps map.","type":"string","minLength":1,"maxLength":255,"default":"first_step","example":"classifier"},"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["name","instructions","output_parser"]},"first_step_name":{"description":"The name of the first step. Matches first_step.name.","type":"string","example":"classifier"},"steps":{"description":"A map of additional named steps keyed by step name.\nThe first_step can transition to steps defined here via next_steps.\n","type":"object","additionalProperties":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.\nThe step name comes from the map key in the agent's steps map.\n\nA step gets all previous session history in the agent session, including any prior agent steps,\nthen the agent decides what to do in this step based on the given instructions. Finally, the\nagent either stops working if there is no next step defined or continues to the first next step\nthat matches the condition.\n\nAn agent always executes steps serially. If parallel behavior is desired, giving the agent\nother agents as tools is usually the most correct approach.\n\nEach step can only use tools defined by its `allowed_tools` list; if this list is not specified\nthen all tools known to the agent are allowed.\n","type":"object","properties":{"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\nIf omitted, the agent may behave oddly as it has no system instructions and\nwill just attempt to respond to user input and previous session history.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"description":"How to parse and format the agent's output.\nDetermines which event type is emitted.\nDefaults to 'default' parser if not specified.\n","allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur. Useful for keeping the agent on-task during long conversations.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\nTool names must reference keys in the agent's tool_configurations map.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["instructions","output_parser"]},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}],"output_parser":{"type":"default"}},"support_handler":{"instructions":[{"type":"inline","template":"Handle support requests"}],"output_parser":{"type":"default"}}}},"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},"compaction":{"description":"Configuration for automatic context compaction when the session approaches context limits.","title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}}},"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 5506ae6ca..161197e44 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 0f4441933..054956147 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: 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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 details of a specific application client by its ID. diff --git a/www/docs/rest-api/get-corpus-document.api.mdx b/www/docs/rest-api/get-corpus-document.api.mdx index 29eb9e017..bd0a5d956 100644 --- a/www/docs/rest-api/get-corpus-document.api.mdx +++ b/www/docs/rest-api/get-corpus-document.api.mdx @@ -5,7 +5,7 @@ description: "The Retrieve Document API enables you to fetch the content and met sidebar_label: "Retrieve a document" 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 information is particularly useful when you need to analyze the details of diff --git a/www/docs/rest-api/get-llm.api.mdx b/www/docs/rest-api/get-llm.api.mdx index 5d247e400..f0516f9b9 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-history.api.mdx b/www/docs/rest-api/get-query-history.api.mdx index 9f58c7bf7..7a972565b 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"},"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"}}}}}} + 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","nullable":true,"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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},"corpus_key":{"description":"The corpus key that this search result originated from. For queries across multiple corpora, this identifies which corpus the result came from.","type":"string","example":"fin_docs"}},"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},"corpus_key":{"description":"The corpus key that this search result originated from. For queries across multiple corpora, this identifies which corpus the result came from.","type":"string","example":"fin_docs"}},"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-session-artifact.api.mdx b/www/docs/rest-api/get-session-artifact.api.mdx index 4b1305ba4..62dacbf4e 100644 --- a/www/docs/rest-api/get-session-artifact.api.mdx +++ b/www/docs/rest-api/get-session-artifact.api.mdx @@ -5,7 +5,7 @@ description: "Retrieve a specific artifact by its unique `artifact_id`, includin sidebar_label: "Get session artifact" 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 specific artifact by its unique `artifact_id`, including metadata and diff --git a/www/docs/rest-api/get-tool.api.mdx b/www/docs/rest-api/get-tool.api.mdx index afc772b3f..062280514 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: 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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 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","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"}}}}}} + 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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},"get_document_text":{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}],"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 6017dc6ee..bc35d6455 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: 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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 @@ Get a user and view details like the email, username, and associated roles. diff --git a/www/docs/rest-api/hide-agent-event.api.mdx b/www/docs/rest-api/hide-agent-event.api.mdx new file mode 100644 index 000000000..1382fd21c --- /dev/null +++ b/www/docs/rest-api/hide-agent-event.api.mdx @@ -0,0 +1,71 @@ +--- +id: hide-agent-event +title: "Hide event" +description: "Manually hide an event in a session. Sets hide_reason to 'manual'." +sidebar_label: "Hide event" +hide_title: true +hide_table_of_contents: true +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 +--- + +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"; + + + + + + + + + + +Manually hide an event in a session. Sets hide_reason to 'manual'. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/list-agent-events.api.mdx b/www/docs/rest-api/list-agent-events.api.mdx index b24951ca1..144a1533e 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 @@ -47,7 +47,7 @@ List all events in a specific agent session, with optional pagination. @@ -62,7 +62,7 @@ List all events in a specific agent session, with optional pagination. diff --git a/www/docs/rest-api/list-agent-schedule-executions.api.mdx b/www/docs/rest-api/list-agent-schedule-executions.api.mdx new file mode 100644 index 000000000..0a0f7dd71 --- /dev/null +++ b/www/docs/rest-api/list-agent-schedule-executions.api.mdx @@ -0,0 +1,71 @@ +--- +id: list-agent-schedule-executions +title: "List agent schedule executions" +description: "List all execution attempts for a schedule, ordered by most recent first." +sidebar_label: "List agent schedule executions" +hide_title: true +hide_table_of_contents: true +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 +--- + +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"; + + + + + + + + + + +List all execution attempts for a schedule, ordered by most recent first. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/list-agent-schedules.api.mdx b/www/docs/rest-api/list-agent-schedules.api.mdx new file mode 100644 index 000000000..4fc2a6b9b --- /dev/null +++ b/www/docs/rest-api/list-agent-schedules.api.mdx @@ -0,0 +1,71 @@ +--- +id: list-agent-schedules +title: "List agent schedules" +description: "List all schedules for the specified agent. This endpoint returns high-level information about each schedule including execution status and next scheduled execution time." +sidebar_label: "List agent schedules" +hide_title: true +hide_table_of_contents: true +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 +--- + +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"; + + + + + + + + + + +List all schedules for the specified agent. This endpoint returns high-level information about each schedule including execution status and next scheduled execution time. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/list-agent-sessions.api.mdx b/www/docs/rest-api/list-agent-sessions.api.mdx index d7f98e8e0..60d03d940 100644 --- a/www/docs/rest-api/list-agent-sessions.api.mdx +++ b/www/docs/rest-api/list-agent-sessions.api.mdx @@ -5,7 +5,7 @@ description: "List all agent sessions for the specified agent. This endpoint ret sidebar_label: "List agent sessions" 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 agent sessions for the specified agent. This endpoint returns high-leve diff --git a/www/docs/rest-api/list-agents.api.mdx b/www/docs/rest-api/list-agents.api.mdx index 89690c9a3..01f7841ff 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"}},"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"}}}}}} + 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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent, keyed by skill name.\nSkills provide specialized instructions that can be invoked during agent execution.\nThe skill list (name + description) is shown in the system message; content is loaded on invocation.\n","type":"object","additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]},"example":{"code_review":{"description":"Reviews code for best practices and security issues.","content":"When reviewing code, focus on..."}}},"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":"FirstAgentStep","description":"The entry point step for an agent, with a unique name.\nSee AgentStep for full step documentation.\n","type":"object","properties":{"name":{"description":"Unique identifier for this step within the agent. Must not conflict with any key in the steps map.","type":"string","minLength":1,"maxLength":255,"default":"first_step","example":"classifier"},"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["name","instructions","output_parser"]},"first_step_name":{"description":"The name of the first step. Matches first_step.name.","type":"string","example":"classifier"},"steps":{"description":"A map of additional named steps keyed by step name.\nThe first_step can transition to steps defined here via next_steps.\n","type":"object","additionalProperties":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.\nThe step name comes from the map key in the agent's steps map.\n\nA step gets all previous session history in the agent session, including any prior agent steps,\nthen the agent decides what to do in this step based on the given instructions. Finally, the\nagent either stops working if there is no next step defined or continues to the first next step\nthat matches the condition.\n\nAn agent always executes steps serially. If parallel behavior is desired, giving the agent\nother agents as tools is usually the most correct approach.\n\nEach step can only use tools defined by its `allowed_tools` list; if this list is not specified\nthen all tools known to the agent are allowed.\n","type":"object","properties":{"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\nIf omitted, the agent may behave oddly as it has no system instructions and\nwill just attempt to respond to user input and previous session history.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"description":"How to parse and format the agent's output.\nDetermines which event type is emitted.\nDefaults to 'default' parser if not specified.\n","allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur. Useful for keeping the agent on-task during long conversations.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\nTool names must reference keys in the agent's tool_configurations map.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["instructions","output_parser"]},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}],"output_parser":{"type":"default"}},"support_handler":{"instructions":[{"type":"inline","template":"Handle support requests"}],"output_parser":{"type":"default"}}}},"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},"compaction":{"description":"Configuration for automatic context compaction when the session approaches context limits.","title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}}},"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 c936dc877..b095c5783 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: eJztWt1z27gR/1cwmHtK9eHm2ofTtJ26uaTjXm6S5px+xPbIELkScQYBHgBK1nn0v3d2AZKgRMlO0mT60DeJABb7+dvFAg/ci5Xjsyt+/vaC/QBbx29G/H7s6qoy1kM+FpUc38F27LcV4Ly3YJ3RQuG8HFxmZeWl0XzGLwtgr6XzrCFFP5R03jGhFIN76bzUK/p8h+NLY5lgWe28KcGyi+8n7MIzoZxhrjAbxzaF8CwztjJWMGGBiSwD5yBniy3zBTgIhITO2Ub6IiyowJbSOWm0m7DLQjqWiUospJJ+yzKhWWXNWubApHZyVXjHpPYGKbHaiRUQOeeFrwPlAlTFtqZmpdA47AtgSi4h22YqToastkjdLHGibUWcXGs+4qYCK1BLFzmfcdTIeSVJ2SNeCStK8GDRCg9coiYLEDlYPuJalMBn/B38UoPz40tZgqk9H9I87riRSrFS3AETbAHOM1gujfXMG5aZslLgA/M20GNS019XQSaXEkgOo3PHjGVelsBM7Sd8xF1WQCn47IEHL+BSe1gRh6XUsqxLPvvtbsSRrrSQ89lSKAe70dPkGf8olZLuy4lVEv3PkQ1FicwrWUo0AUn2Sw12e8D4j+Ke6bpcgEWHaN3dG2bB11Yz4ZnRQHwgD3t6O8nU0thS+PDp2+c9Lke8FPfx99kZMrUUtfL4LxWgEiuY38H2tAzvMcoCx1bCOmhYw71nuL4nl1h6sDEqSulZIRxbAGhmQWQF5E8T0Xkr9YqnnGLk1+5xXl9JhQFELKTaNlohTBgHAR0SYGBm30nCZrj2EX77e5+z2oEdR0jJCUUirhFBJNaXcMThXqDb8hkvt+MwjZDAe7BI80qMfz0ffzgbfze/vv7j9fX45jffcLLua9ArX/DZ789G3EtPNF4QgR9g29OdqCQqbm6Ngqdor1NcgFZpGS79KF28M4o8I7HDhJ0zB3ad4D5BMJmmAovuzIgvhlpqYpjsI71rwD8lg4ArdQ73+Keh15BaGF90ozj1CcSv9TkSoLzWcolejGmLvESU0PMeEZwtsyC8sfsyD5lcY1he8SgEAk/4NRc6nzcMoxck+bWxcMgWqF2+292gQVxltAOHJnh+dnZoiUuCwzCLSZ2pOgdMZiy6hWPCWrFlSwkqZz6kWe2F1JgMA8ZIo5lYmNqTbNe6cZARqVWwErzIhReRSFyPak8puDorUF2VWEkdPqGKKC/iEtAe2RdVpWRG49OfHcrwcNzNGsGSLQUVGj1YwihEzkXtC9AeqWOYx2ojMZJZ/AwZQnplMVN7GRTbqOqQgdd7WyW0SK0Ybx7KgZXnuvWvOgJsyl7QbO0LY+Wvib96Q5L8AzIvrGCVEh41/LgMMh/2jYvvn+CzHSCJu+188ozvmgw+RLKoS6HHFkQuFgoYTnx0jx2GQWbBE8YPkm1VJYPqGp1gZRdGXWFqlbMF/qt8qMVgcC/QyNqASi6QT+la20jH4tyEzsIYBUIjIXQNRMcBC7+I/jVWsAZFGNq4YrfB0x3mHa2nABWUabB+oTiuWKYkaE/w57E6MvoU8piNpgJC5FgxOG8RufiIL7A4Qhza+x6T75HPOUqHnoYUV6D9wcTwdS1hk0w6XIYyoa/JCpTUcECmHYiU+rAYMXHUT3ekxcoCRTyfeVvDftL7vh2fsfcOWGtRPBR4EPmEvYaVyLZkwa8J8K2KjzkYjY5j4ZIF/oRzcqVL0P5znO0R0o/DTVKwHQ3mqMpYbhGjYR/MAOjrZjB2O8Me5LmOS8g76VspTtRhj4RG67yQS/xys+sdcq76BSpxeLNfl3UeSu5+xKjnOPhFbHqa8hOyILF91KJdIqGJX8OetNHkWj9jtwPIc8vG7FWtFEu+ynXTOWgyaWA2FEZYPuSgIBQ8miqZpVzV4ciebhT8AXd4ByIfUw3b0cXRSLhHYcQchLJxxGCN5hwRyNg68+ErbuqNUS7drIVK3O+F0Kw0uVxuh3egQhSmsUHR7VdXOZYVRDwWzt3G6W4Iw7jRazzBQZ6IhUdPKzIfjlCd8hbbsCuqr9kwNkN0HqrAqsY8/UJobfxR9WBCi6I58Egudk2ORevnp5uDOO6c/DCMKYB6eaYySmYD8fBPytJBt0ywykqdyUqoNEN/Yh13vOzar7OaQ9tBwAmlzAbyeduMGgCLN+1YLDmw5RbWxWNhtwd7KbKCtdRYKbbhVEcLWAYWa3M8hZjaZpBQDHsuAk3RzmCVQAcz3Ye1UDWwUlQTdhEkDF+kY7pWaoSfgkY7NqRrOaZw3rbkhrQs8lziMqHe9vTdV8tbMjgV6yRbp0Iml0Ho2qHL9zsKpzbeA1kkOxd6O2/WDNaoqTSpoM1Jp+VroGpN2kFYDyUO0VpowB+I3RD5dKYyy765CCG6s1fDUEsSz+19+zovrHeBJEhfgGULk29HNDpCMJAlHgWlx7U4hN9oaSo6rpf7tg+E6AylWzJ9jSX/cLzz63iu+BgnOZaA9xtaB2hzaO1+LdiGYXA8fkCB4GAwpPuE2vX7pSZ9ag7wCc+tzIdA47zQubB5d+6P+m/7DOgA0RVSR+y7ett9HIBPahmSGZpg6jUcqQxA+qPwE2EAAJtu2KqJjZ62nz4Agruk9ZZywmH7t/WH8sOvH/71d/nm51ff8URheNj/sdHUbm8g9vGbjkQ09u+GWjLN2ZIU1LSqN8KxUihMAuGs+YktkZfWGhu7y5CzDapStLskrZ21UDLvlETt8LU0SnhwLFBnNGcfR44gF/V+5oDbD+AH+k0YC+hvQYVypKvmiIDrfOlTozCxcQkOr3FOx2g0Ypw76CuRmfnjTZRG0aGRJjQ2I5r+Dt0eNRk/3quxHBb1KtxWbbAi2lijV8Me23D6F5HHexMydutq3w7kq6RTmRuG1VdIXGrvBu4zPO6crUCDFSoYuEMBQnah4+fM5KGrFRX9uEel1jvUeTPaFBEozaYIEB52NFlWW9vr3Hy09dMW/QXWv9gYxvM82LDL5H/QQTq32OEV7hKsHrv8bryypq7G3bVAvHhMZpTgC5OP2wsu57vxrm9LB/zaOmP5jH/TRGpym4RgPU9nBI+YNAkjnWvB1cq73ry24Uo47UG7UKVePfAA00fvpUecCsP+/TRehjTrhpTRLmqVMrgiVU63hJR0MD9RVjv1qykNbwYCs3zGV+BDB7fgMz5dP5+280Jjqrlvrq3CC1rvKzeb4qTJOnjiRBqOFJurbZod0t15jVSvSMFv8M9z+pdM/glBI4RwM6ErMQR92C8xwrzk3BkjAq88ldmE9hI1PF9YyLFhLlSIZXMH+n1fjNoXiRzTsOWUZtKVr6mIuRAqqVBdwghl0mj4Avu+cT8KQLzuSFGlieV3L3+6JKhdH4rbjLn2MYJg3oomxdGpexXLWip+scbfwGK8EAgbCVLjafnfpiZUWUqsfZVC2InPEBxeNt8OGxj94g8oCei8MlL7P92y5tK9+eToyGZqj03YvMnTa2GlqR1z9cJBPPGapIn+DpZgQWfYi8jaxko8/IXGjjcIglL7WoYGjcaDDKUp0RWbqKdlrVjoWmBj/1pf6zGxSTivPUNnjke/Z8/Wz589m+CM21Sw20ga68RCghU2K2QmErqjeITDitpmwgWGim1VAKmYsVfGspgWRux2Gi8Pp7OuCTjNTVZTw+42tDAiZ3zGn0/OJmcI32BL92b5E/aG8ZTX+mxjlcyUUwUroaY0dWyWYxcmTwmUlVmRs/UDNzeZm6QkZLlqSM43xualsHeTilKbUP4S7n3nqJzyRS7s3edQnyt8S3NqDypDM6o0oBQSd1gC5AuR3f05oU4xVRnnS6G73gdvnxZFFOvF00NXxvz/HdLRd0gR2zzc+2mlhKS7LDL1Q0wVV5ywqk0WNyNeGOdx4OEBoee9Vbsdfg5vCTAp5NLFa7X4POCoZT72XcwgvyHhNq9wmnxMufjpnPyXX7ecYDRJ35/I6xd43XKC396VxmdxfOJFyYn9996tdBzc4B8rkYVQfDRZ+eN88Eu/lTsh2uEzvk/U71d5GPd0Qbr3ez15wtzzLIPK94rtvUNmr27968tLvtv9B8oo+zs= 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 fc0b32c42..21e5c4526 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-corpus-documents.api.mdx b/www/docs/rest-api/list-corpus-documents.api.mdx index 6f4f55be3..22d77a904 100644 --- a/www/docs/rest-api/list-corpus-documents.api.mdx +++ b/www/docs/rest-api/list-corpus-documents.api.mdx @@ -5,7 +5,7 @@ description: "The List Documents API enables you to retrieve a list of documents sidebar_label: "List the documents in the corpus" 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 @@ -69,7 +69,7 @@ Currently Document Admin APIs do not allow you to access the text of your docume diff --git a/www/docs/rest-api/list-hallucination-correctors.api.mdx b/www/docs/rest-api/list-hallucination-correctors.api.mdx index e710593af..6e4dd9c1b 100644 --- a/www/docs/rest-api/list-hallucination-correctors.api.mdx +++ b/www/docs/rest-api/list-hallucination-correctors.api.mdx @@ -5,7 +5,7 @@ description: "The List Hallucination Correctors API enables users to list availa sidebar_label: "List hallucination correctors" 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 diff --git a/www/docs/rest-api/list-ll-ms.api.mdx b/www/docs/rest-api/list-ll-ms.api.mdx index 0f925bbd7..ebfcff842 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-session-artifacts.api.mdx b/www/docs/rest-api/list-session-artifacts.api.mdx index 31fce98e6..b5ec89b23 100644 --- a/www/docs/rest-api/list-session-artifacts.api.mdx +++ b/www/docs/rest-api/list-session-artifacts.api.mdx @@ -5,7 +5,7 @@ description: "List all artifacts stored in a specific agent session, with cursor sidebar_label: "List session artifacts" 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 @@ -47,7 +47,7 @@ List all artifacts stored in a specific agent session, with cursor-based paginat @@ -62,7 +62,7 @@ List all artifacts stored in a specific agent session, with cursor-based paginat diff --git a/www/docs/rest-api/list-tools.api.mdx b/www/docs/rest-api/list-tools.api.mdx index 86db81126..cb62fe958 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 @@ -47,7 +47,7 @@ List all tools available to the authenticated user, with optional filtering and @@ -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","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"}}}}}} + 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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},"get_document_text":{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}],"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 57ffb8b38..d0e9bebf2 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: 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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 @@ 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 1906eb95b..b13825d23 100644 --- a/www/docs/rest-api/query-corpus.api.mdx +++ b/www/docs/rest-api/query-corpus.api.mdx @@ -5,7 +5,7 @@ description: "Perform an advanced query on a specific corpus to find relevant re sidebar_label: "Advanced Single Corpus Query" hide_title: true hide_table_of_contents: true -api: eJztvfuW2zbWJ/oqOOzMcpVHUl0Sd7p1kvRU245T32c7Ttn5cmZcXhJEQhJSJKAmwKpSvGqteY15vXmSs/beAAlSVF1iO7Hd6D86LpHEdWNff9j7bWL5wiTj18lPlSilMMmbQXI5NNVqpUsrsiFfyeGZWA/teiX8a+uXojyXqUgGyQtRGq14Dp9lwqSlXFmpVTKGJ3NdFowrxrNzrlKRsX/Bx0wrxplZiVTOZcpSXa4qw6xmc6kyVopcnHNlWSlMlVszYAuhRMmtYKYqCg5jHLClXCxzuVja5n2j5Gol4AOuMlYZwU6ELaU45zk7qhaFUFZk7Ak1JrUanapT9WopDRMqW2mpLBOXK64yAwO0S8GMLFa5YE8ev2LnojRSKzZbM57n+kKqBZtXec7SylhdyN+wSabn41M1ZPfvvxS8TJdsxUteCCtKc//+mD3UypY6Zyu+kIo+2Jnq+dwIOx2waS4Laae7A8ZXq3zNCmF5xi1nc5lDCzQvWrY1y8WlTHnOpLKiXOmcmrOazXgOa82UqEqe4zdnYn2hy2w440bAArtVGdFQf1jPSpkxgyOGYR5lv1bG4gpMXTeTVjdTds7zSrCZsBdCKDbdH+1P2c6qKkW+dh3vYs/Tg/CJa2x3xF6tVzj6mTD1RjNetps8mFIb+6ODqRvriSi5OpNqgePEZappq8RnojTMVOmSccOeVbmVuVSLiucD9uzZyYA9XHKpBkyX7GcjSvZIzKUSGfu+UikuYNOI1UwWq1KfCzdAT2mpcINpSIntnBw92YUxHas0rzLBOJsu6sdTpme/itRCm0LxWS7YotSVykTmadrRz4W0S7bWVcn0hWKw+wOWSosPHQHMeWornrNUKyONFSpdM5PqUqqFG9dLWwpeuEX6EY8jz/M1M/h7vdy6rE9W1hwtJmEReM6sLASNZ0ofTkphVloZMcWT85inS3eeCyAX6WaOZENnenIm1lO24jY4CMwuuWUyE8rKOfQH71teLoR1nGDEXi1xzbEzmKflUsGhFDDmQpfACWaZTis404aVYlUKAw2qBTZXaBPwhRU3hi+AafBcqwXNiat17+x12aw3TvP+fU+rwFFSboS5fx/WuWZvzIiCKwvv5GtWynTpzhLT56JknOUwuwHLdMGlGnb4Hu6ZY1SiGbQVl83Icd+JKZT+ALC5LuG0wJI6+swkcim7xjafeK4JCygugWbydUN3XJkLIHNdBrOvDLR8C7b5l7+wf3IjUyKAmpHOmt+YuOTIPZfcMM4KqWRBVDuXi4qaGsOH0+n0V6PVqXp7qhg7TajFZMxOk1+AVJAr5Dw9Y0udC/OP02RAL9Iiw5v4JfwES6pLDr+9dj/6n4kaqd1iPaSfThNGb129wUavXNPN0W013/w8QYqzE8UL4drUKWzLTJbZ8HC070YJXxX8clIZkU1owBN3/uCzw33s/+pUXeFCuKU9Ef+qgDHOdLYORAgtMxBJ8FjC6v7Hyx+fex7jzos/C1NcTxAv1P2UuIh2bKGPTRHhuw/ZjrHAWwbYrSxFtsuGbOek/gNG5OidNh6IbXSqfH83NnCkavYI+52SkCTGUMsqHHRD/KtSp8K4gVJHI7f5UzaEJnlZ8rWXlvDJxRJOZqNsuK/Y9xp4UqAFDLBn+v5C5rlfUTjpUi1y4YZL7KHN6zbnOsYFqpT8VyXY8SOm59j8xjiwKS/yJyTyg/b8fu2O2RF7+dPTYS7PhNMMoBXFy1JfeN5OszJrZfklrpw7jGbAjCAW/T0pFWxRyUxQ71tk/c4819x2htBWAPZH+yTkvdZBkyId4KB+6PSQ+mkjDpehDjJiR6wUqS4KQSLS8hJ5Oylp0kB/hw9o0KR/TTJZCAUampmyHdqf9ohVIINnGgQE8M+qXNfykLQjrZxKx5omR+ylW7WH9OhR/YjWD5lxJiyXeZsmSaVjO7CkC1EGQ2JDJIyCX8qiKpiqipkogTr8cKz21A/rPAepV9P/iN2//0jMeZVbkPEH+2GfTqG8ptPezsyZXOE8Gu20081++7ShVJm0GHrf2rMh6L3NO9iHqUoURLCrriVUuJwOgSJa8EaS0jhpx0HSC5UKM6FlaWa6O2bP66nVr4UNu4VEJYHbdIlckvhVq2U+p+N364bxg23tpkte8hSO2/VDbt67/ZiDtq8bdH/T144aj93E8kXNhnbH7IdXz54OjV3noLQtoK2Lkq+wiZlYSIVyx/E4T75ZvcU7YrQYDdg3s+92qQ+hsjv0IEBw3dT2HjU+Ho+VtuJU/U9dsZQrplW+Rh2u2T9a2T1ahR9PwkUKHw3YrLJMaZC4dkltowZMTLVXi+k9Hi1lokvGqA8MNp/iEDoP/c6Q6vFNwcuz7wKNw62qe7rnHm9oGv4oe5vnhtMLemhtH/WYR/+qeC7tGkzkUugyE7Ch7QOMxLfKeSp69HRcMmXZXJbGkgRDXd/xVRJdr2sLELXrcyku3uzsZTo1e9TTkKtsWKsNe7U9t1czz6H/0NEgODZCAiQVy09zvRIjZ0SZ+tyQhBDlpH5vJyM+yYrA5qyb2R2woijZDrC+rrK+i9ao0spJYf8N6pbdcdXGQ91xoTORw7ICabszQGs0Cc3fyfmBm25HJO2O2bMbZFBVKscpGgHkZK/V87nXEKAl0PKrorGU0TIVbCdUFJxOsIuCgPv1ALEs/AJnoAJYZ3eVXC0ESf0vh/ujr6lv9+bEHbQp25lpnQuudsfseM5sWYkBrInplzXwf3NPYTxNKzSVwvmB6edPOFh8p6p9wv0OtA41kAsduw0SCc5na4vp9f4tC77BbYN3H+wPNk9yqMT3HuJtSvZSX5C6u4Cjl5aCW2GY4hbVuJzDSBaNNW5GuLigLrvmQHG+pE0bdJwZ0rBMGtDvslFnlKN+U6pP4fU6Cy+EZ/6rUgw9YxUZGAPFyiJdPX36jM0qleXC7eBJoEe+wI6M201Qt9s223TM/kuklpf8nmFpZUHnHIpsIbBZoJaToydEfef03pAmvB6KSzs8/Gq4/2BYiGyoCyWnY7azWNnhV5rmUsjfRIaN1P6F3RuaQr9B3c5of2ircvb7mzNF7hv7cvTg5sZoAYENv+KzKucl+qP8Wej2Y2Gfh2gBYp+ZSIeH+4dfDWkRumQ6ok2bWFGscm637fyRV8bdHvvXwUuFRi+4YLgj6gydeWQ4mrWxovCe4JIVwrlS5poUnqdPn43AB0jEbHXtyBVOmVnyc6lLT3LEZmdirVXmadAIS76qelSgZ3gZ8V8i1ynIQ//UkFp7zksJa9W4KadfuMVE1/oJ8d4pMd+5KEENCPSdtkAN5KRUtBhSKycrH4ZrZ7ycdH/u+R2kv4dCLaQSuxsndYv74m5GjdWrHk3AgEI3bzxQvzmro22jXPOt1X4v+5o5VsDPDHlCpMHdIQ4HDilYslQXq1IswZY79+GFNWp7BV/DTsL3gS8SfKKBUcSQKYNphNYoKoYpr1DVUy+FtXXXZC5brTFwga2vSnEOPLehrnmpC++UhC953XGjc4Y7459OPJu+hn3WnDzVzly1oZMVFQdQxxfoKVpx+E8mquku2L62PiRTXlmNpLnk58KzS7aohKFz5/shnflCNIZ86ItBD/cKqRsYeD048mk2IYENYqz5060tTTqOKPv9t8A8YKxd/+/a2z3rvKV4PXQfMnzSaIPgmZyCcp3pCwULtrRFPkV1bgr63JTaq8p8suLgqFVhq0fs55OnDesIuS/LpTozA3axFNDF20ynI5ldTckdNYNFRSU6I44Cc/HecHb8yGm1YH30dusUoL5+M2lWOV+3e7bS5uJ2neOr/bpT1z7ym9G2iWCBnT/VrWugAgULSe8srV2Z8R6ytZFzcY1SXezVsYE9v3ZBM+HKUDvBNPvMpJAZwkGdNC7ZbWToGG/9Xn3iwPle5ngIgGuh3AJ75KKU1okuZ0kY4H3TLXqS3+NiBU8r9Ch4Jfyh1+1KrjJdKDiajuJ1ZVeVHbEf5GIpSuJKxlsN+6O/7YKsyKpUOPYIzFLWFh5SpMwFy/VFz9eHu2wtRZ7Rt3OdgtRACZzBGkAEwFiZukEY5/HklxOrz4QyLZNkmxSBF4H71CFhN7GAUd5n0zl6yFW6nqyE4rldB6vzSBBTp7UGowntnZUgngv+SQPu26xK4W94YmWPM4xinsASIcRJ/VIYKhU93TpZ5LpNl2gceaKobTgJO4frr8QFCD6Zmpv6vfmsdYm2bbE0NAS/74++bgUuaMnJ7tivn2wsMH36oH6huxL0/Mtrzxa5gicuvjkJ4psTtCL7TTynboFvYltkdINKaKkzmQIFgQV0IfK8XyQwnsuFMg2vaxSxmsmMTlUySPTKTeQ4S8YUxXqITv5kkDRrn4xfv00kwCOWgmeiTAYJHOhknLigz/CVLISubNKFU8CROHpxTGy44GegxKCsFPO5LtGABnUmF1a4gVKUyM3deQ5QgUw1ghxKivHqyo6SQWLSpSh4Mn6bENIjcacxGSQFmfXJ+OBqkPjIRjKe89yIq8Ht5jN8JvNcmg83rQLbf5e51VOBiHUzkSa+0zt4F9o5E2sf1V772FsT5EFygJE0q4fkG4ys3fIRmi2gm59LsF2hefKXuLBxMvBzIdGeDBInAZNxE+BE2kNJl4yT13z429Hwf+0P/z45Pf329HT45r9/ASvAL58KtbDLZPxgf5CgHEzGCRHvf4p1chU2PZcKeJdrf7i/f5BcvaF5CWP/qbM1TMb58uCfELeGkya12gO2BL/5cBT8+3tqEP7pzlwyTh4XK5Qx1JvE+B/P16YTF0FAjFP6BTvcP/ySPX75hAhGcrKbAMZE8vdxVeqV4IrNOKpXuTgXJQQ7bgp5E7wDes5EDn47YDGpNMBYDICQDOnuzWhdLJLYBhBbnkv0sFCItBQg71HHVxkJOg7UX0LkJQ/cZzvPnp3sdoL+aLHjW52ofzJIUCbDUmI/eApT6PbWqwKHBW0taKQ3IJiM90f7+w8G5JEimun1duOOdpzcyfhw0PVt02/epZ2MnT8bCJr82PATObET5D/kPAtOc1HASQ7Hg45JGOlfB0nHU0gn72qQdIKtyThBXVFllbHlmn3L7s1o1e+xo+ePgN2PSrEAcviW3Xv8c/PrWvCSfYvkBwNsRBoMsV+Bg0G3nU9wUtsuETixIDDfnial9mox+TVOk4GPMShLDyDMAQYJZ0uRr+aVj8EybkAYgoMddnvzQI1OE4I9/AU2CGJuO1/8i5wQwGT7fBO7DlrRGhnwq55xHUE3zqni2zrOLn/RZfb6C9cjLLq4fNO28jvDbVNwPejuKOrZ9gzli7duXqOFsK/Epd3ZvTpNHOjjL0JlG6u9ZU4va5bTOVe2FCB9eAE4o8c/05FqAsvoaJ1ByASQjlItcPFP1RtUILY4WpLxwT5QfcfWT8aJUAugN8PPxWQpjdVw4kmsBCxngqxgUrMcL7evBslTseB5h/FSPD6HJ2AMzIUxaNaQ06WeeEl85SHP5VyXSoJcqkrwwaWSAuPgAMZRCNLKVsBmSgsIKeCYA1aBp/s3cnQ4L19v8ISC0qVAhuuheI4fEvskSzEw8NEZJHiRk+1jxcIxcqmsdpOblVLMzYChoBEZhK2cO+P//u//YxpY4cnRE5byFZ/JXFopzHVsltagrGAKuALHL9x04Sg1i3V3Lnuwfzc2+2UPm/2yw2ZF0WWy8Es/i90IZySDdhgDF6EvhpG053A3bvxrVUqTScJmfsvuNUvYsF/czgmh6+Cd4xf37sCGb/bkvz/OTIQH3Xc4sz9XZHEGpFQfpw/MpR8DRXN7Ozad8uYgwkk7fsFyftGm8D+XQb8gtblecjzrtUnnzW7Sxe598TZcvKt7LX4NM6XjfDtW/WDQuLbwZIJHC6S9Y1LJIHRjgdm0zYeFUNPafwXqfuC3Ssah0yq5eicx8JKw/m1BcIT7xI5fMXcVgFnBC/IklbqCAMZSa4Jllci6mJ7Pc6kEE2WpS2R/v0iV6QvDDg6AvdJiEdsm3Doou2dKX+QYZYN1H7Qd4MaK1XC2HsJ/2VxeeoTq0ZMB6dYrXtohKPJ5Fy+PRphmK6kINtZAazvDh7YdxNbLoZboEWrpAeZI8hQtTvv17R8gnqpxqN1lkeF6fHA9+yMVAL2cHjZxBJwVAdXfsnsXtE4HB8Tl6Tl6xiw8dit7Fzb/wbRtK9KlQpyCPydthdtvOTX1ofn4Q3B9ZQ7TdRMf7zsIfy7frjHrvLawNzjAXJfjTaZ9Oz366go55Rafi4dd16DcnltKwHQQCuzPA7ADXSnbQlXnzeWCIIrXMC9HNdBd4MihSAKRJqjKkhwkjrV0R7uBu/ahPwI6S+NlnKGbQeTtLhEwbhDj0uNCavmC8LQ2XMo7huhqE7mHXjSOzT7fWBAAaRYV7nE0Tiye5z/O0Sva/rwHM9q9UtVsjtUNOPumjRoEIUF3s4r8SO4Wxy12ZANz3L87GzhiCPbzLJMOen8h0DTo669560WrZ/cehUSSQUIRf1SW4SiD07LKczDhavds49DD4TTQ5aSPF/fNw6HMiUgYRnUaxLltyLDWm2pJzK0t5ayywl3qIULlC7jP44LK9XZRcBElm6Ie6rAi8H9DsTLEqdLFhi5YfsR+VO1rcyLPDDPCIsiC3po0Q5p6k9wNAeABMz9bgKB97+ZNMHpp4D6gBBwMktvLn56yX354fPKYpTmvjCCQ+Ovurb16FkjIb3Za+p7jYT5mafZywUu159sYOkhjrdDs0b8aBGODYQvQHzcc7L/tgx3WeHRrPRJE65FSYHufoIMQBewW5aRLKKD4FABoAcAuEHZ9QxFDMAbdJLwUNWhDFDOR4SnEF0ZsnxWCK9N8R1QlDUJvKZho4fYl3WA5cK8jrnfzG3g/WIjNE4ORuTAAsI+r5IIBwQKhGoac0DGIzckfu2CSgcC5XRI8NvWymF9D93g5yt2KLUPER59/X8HQXicuQJwMnGhovEN0CZeejoP32qz7ZT2Rq6vuMxeyglBIlye1p7xxwbXlmG+U+paxNdpgpXRZYXNFX7q4DiEUC7iu58E/6MNx4TyHHIW7C8BhpHFbD/7Pzl2GZkGb4E9NDFLZLw+TYPH2Q8K4qjXYPva4/QoHYWdbdHhN300kKhjHAXS+Ve2/fovaItQxO3dV0l9XplsWLU4bREtheRHltgGi37jS4FD0KKfbtkgviB4CuGtd1deZ4UffMZLKYEs7zPIzYdAfKDJ4vCmdu0Pr3zbVezfC3zg0S/Ao9l29aK3VBtEBMXpMrQcbOwhh7yJfIIfwj0bseKE0MEk577voIg1th8dd0fU0voLoPTaHV9L9dw3UF+/P4pDo3SyY8wCFubYs18ZNVXC8xpFyZLpw5R2C7SrFwDje4Aq2+TbEDTTcuafy+zel59LKn7En7rbNJ7wlm06D67ckuPj0Jx+Td+DlgWA/vOrxkfzOJfijifI9rkDjEeqbO97BgrnCLSzTMz5OEFZsppmlnluhalthVftj8TW847X3/z17iq0D4WrAaqDiBBH2QsJirp3MqTDOjmlEGigB3ngBLB34JDKHVwx6qvODwE5IRYjTn48JEL7xXbAHjpYpjuew3u0J4z23GwAY3zhHWu1be5elFSr7hBe2PaXWuvo1p8Nzq3UlD2WISPm9IIOtzs8GAIOja2lRW5yjWxQw8oc2CTfmgbU8cre00P1QCkgws6ZYJHEHnbdSkCB6E+7UERdqXwH459qDRkNzHCVRZYKrdnXztX+bn3OJ7gJvlXlvyT0D9/QAi6/9JZ4GhjJAo9qG9+TcLTrAJZ4mAH4+TaawlZmEBSlACde4Yj4M/Jz8sriAYHitVhiUeNvjaO5x1PnbeZhLpO0ICmdxsyuHnnY7+GUpiOvCY+hgujGq6aA+R16HRa9E5/qengeXJkfBY5mh7pBB7hKU4j7tiQci0X0M2kUL4ynb1FS5iw3cNu33nJ3GHNxc2ICYJzLrZ1JNyoJmFmj19IbqnY9mDY6UBponDSvV2eTw68OvDx98ffD3EXtE+k24cs+enTTtHD9iwEDI0gejWfBsUBNz61V/rQ0vagJU1i8ooGXhgk93S1xzfYvVRNdgvDv/+H/8kP+2e3qa/fcWK2rNCBfad1zHtDvxkV7VIrjW1izwTcuDX8ECwSWX2y7OtYx1S+gmtHw39I1tFru9Ka8BXiIg0zhQnDazezA8h8GlY/Bdg6iCu4bSshWl4KEe59rn5cKA3vhUHXgea8BrxKRaVUGyqTTVZeaChBJ+yBe6lHZZjE7V4Yi91ORzrLclYxuJIuxSyBKh2uTjGp2qL6FPmJpLbKRX7HkInwep+Nw75+lWUHNOZmvyDeGSI7T7ubZiTLIffwxWAGYfrJmxfIHkAC5vSHJFa+5EzIDs/HohgW3hDR6YOeiv2DqAYSAYIymTkcfA296UEdy6DA3Y8fUOjasGkrfpw76WjNyFYoJx22UJ0aqcLo21CcrfHP69BOXSQjEa54ckL3Y4wtRlfo6+x1IU+pyi442zC0flPKgzkXuHe00y9ZKMWIf0SlG4NEA1+RnM6EdktkG5AanRiD4YrfkJh8Q2r0rUUu9EdOBEQsfRPSTfeygt7lHz98g48ws1CJY6nBgmGxi43a3Xxp3ATXfxVQ+AqaZodzshFLoEw+g4i/3VhZYC1WhroBHjtteZLeAy59aUEhQD8BngUDe+HLrAwgtewgUFcBqTv9ZrTuAobseFROlOXnoSqAcQMZz3ePuPOiIfL9ojYj1zGfXmLqOe8wuT7tpRXN+bdkbDDFQyGkUbzkEpG/2oSH3yxkkHQjLow5XgxT53FJt7Igj8Di4mdD66XiVzy+sWeuJH168qYPS2u7zXS/WFsDv3vhjhoO/tsvvM/eCnPamHiSmR7u3+2QL/VEWRH0V+FPlR5H88Iv/OAhUyy/qEsqEwhWsqt5Okz9yNoGf+RtBJfSMoyPDbXBPCS7b+HhB45T6UoC2KrY6Puv/JTHLj0kzarS6NPnP1emEJy3cFHqWwn35R2awFvNO971xf/aT0UuH9qRvRAgEq4MsoK6OsjLIyysooK3+/rHz27CQUkbhcNwtJ7ugDndCrvDGjDQk/TE7gw1aYTwFpFEXphxKNOPRAOKLPnra/FMMmq/wCAWI3uOpxGQIPcgj+xMzEWxjDGqN5mLo4pDlELGL+8AaG62kGYGoirSDPR44yUAJOHQYhyxTSfu20d2+X0ITH9NaD/atWToDXwZDf3NkTAdMOyQECSX3UgAlo4FjX585TRqYF4QULnXnVRJdy0bP1zOeofH80gFl/BkzpgBt4ZGsGGR6v3XWcbfS4/5kqxeeiUNyZDz/XSjQnD77XSvQC82PwNQZfY/A1Bl8/d1Hw+QiDaF1G6/KzsC7/vYKvMeYaY67RjxwlfZT0UdL/u0n69xVzjdHWGG2NUjJKySglo5SMUrITbY1R1hhl7SWDGF6NPvUYXv1w4dU33aw7QeS1dbO5Tv24kacnSLx29WYjDeJNmdhc+T8WVN+48ZBSeY6eQOUvLuVR0xgWBaTXXf4faVwCINp8TM0Fb8lFnVqDnIPpkofJDbZ4dVsTbmd67J08vuANElcrE7J0CkFGk8/K70gBMvnhlILSxNbXaRkxBsrwUU9tHgwq87rSolPiqB4h0FqzoMRN/UExYwb1Y2Co0426eD7MDqnFMVG1s/QUJqMISqCN6kagshDmv2JY5LBV/WXa1J0LSr+gfn+U5y4aakQ4VnGZilVYqMxlSoMsZKXMMqEou6uvdyYKSlpRF4kcscfnQgGzgOO8OUXKoUJa0baKRz6nF8nWcDQ0U0i+1p2roXpNUyAvUBguuLKb34tLSH4gbb7GVTjeXnXJ5yKrB+uTvtS5S1vGdl0SFruBbaOZj+5hnsqNFG1S+RRtB61iHp3UpVd17tJ+isew+9YZUMQaa0sFrUx7c8bdckC94fetWThvl0Jrs+DfTGxmK3Drebf0WvsBM3lw1ZMItjtCv8sFV1hCErX8boFJyG1qgk1uSn75rTing6mrOtHLTF/CyXGjGbEf9AWUJEE4QUkJCd0ZI4LaPDnnkvsCg1RVcrSFi8i6BhjSKSBjFDta8XTZU6lys/gyKAdLSm1cF17tHxKVnoRHr3OtFkPs7k45EG+oT3lt8OW9Fsz4wLl6n8hzp+DeqS7GR5Oh9/ekU3flL+ryjj5rb3gML3vz7EnTVJBoQbdgK+b8nEq1ppBAkzA6YHkQBKlLok4JqZvzJkSgjGyTUZH6Pkfq2yrA6qorTW62Tdqs6y2irwYFpmfwTcjaV170aZw4K3W1WDLIzlzgjFSGugVnS15mZMCMsRGonUqfe8ULGKvLtbgELxoa5yqoNNv0QyMA+0cCkbrSVrN1kAQZ2fiW2U691KDz0IQZnj59ds+gNlFWqUvR7M3VulrKmkHpDsyLCsIjhXR2+bp3ZZg3CW+bLbM+dV/ud3N19tTK6e7ZU/fEKeK9upzL596fkcqlYoVyuPgnuRoqGGkJ5V1+W8LvZxrGzvGXEqux2SX8W+UZuoDg3yt8x6zg37+uFP6Sw5sV/H4uIT2SVPB+KqCF6gx+Fzm8sxQz6JHD70tJxSXgTXMBX80EpkM32LtW7eSwbuTeqvQLgvcUO1p0mPz7GTy7fdbvVoXLEfvl6OT58fMn4+YYKFC/RSlRO8jZXKA5QnQ2KwU/Q3UPnJEK0mNBIQeqoi1LqCqUr8EbpLSVKXgLkIwgVyLl3g+a9qnNUq3ORbkQwBF8IbXQNsb0jN6vCDhaYdtHgNAgmJz7Fm7NPC+usUvJMHAFVKdYKH266+3TvoLW89CHLC1JrpaK6OuUL6XKtlePvR7AsrJfJY4BUvnP2yrtTX3W0CHmvNhEAnfMhAt+j8ZK3ZIEHwaOjKx50y1iNxaJ9SVtXQiXVFwqk9tb2xbfl/aGira3CGVeDTZrpvbk0G4NFl+DWltUCxaXtuOpE5cwAMBY+cY9saLbwmg25+UAqgg1hdDdTtwDfnsmcrnUOiO8GNTApYgOIJyxZsm5KGfcyuJ2U+xWfX2nGdaZtJdiDU5CKLLXNzmpbjE5y/MzkP6QgriprHuLSYFDrlXQp+MjhvI+oUAjmVzlaBWSx6PgZ63y4zdzDVc0qLemQKsWOfGr0LXhcjriLpKGRL6lqaoKUcp0CtWpwzppBaDuM3AHGdQQGL7Ic/BJnb4+OD19M4B/HOI/hE2p0jF64ltNYcCwxuaJS0svYkn04MV2lxxroMNWsek3nC1LMf+2U+f7u7Ds0Td7/LupLxzt6q6zIVirTZvT1+EXb3aC1nano17Pi5fmGCGAEgq4VCBTbZFjIMYVbwJPa6t8U98WwZTcC2BK2GDXJrRrZEtgskRaH6gYX0+ITHjfAggjnkL0oK+sgt/rOskm5jyHRKwgVKB5srSLNeAP9+Za1xWl9t7ii1hX/lXgrWrXq3cyulhZX2DkeuHhO+xY9Z1q7Jhms1XOqjc/Khzzd11JMPRcE0a4AAjQGcpXSJfKnIpSQ3+lYtPXb1Dz9S0NHNN3hdmtZs/ZTHiWg3ZSE0uAoVJow/kKR6317ZzgXOsz447A6+dvdr4Jlv+73SkVeHDDaPKwwzG/hhym4eJOyZ3j9ogcl35JpkEVsakDPrfHFxy0C+RrZW2CUqS3ft/JVDeVV9Dm5nQufFDPE8W9gK7rWt7Tt6ekcZ4m49PkFf3r6ga9pVsQrY53ugGGIZNBclO18U2SdKUxSa/xe7+95jguZiuwcIu4RjDspvxwe+DGloIXtbF2q2IUYe1zJ55At8WWBKYOV/qGsIuvJtMuM3erQhjwSWCj+3LYzLXS0+/VDaXrut2+fiXSJXtRCiiK8ob1joI2/LpizC486yJX7qC0PPtAx2ADQHOXFmzkbtU5ZBTUYmfOPpNvN3nvCbjjX0Mc9SbHqKsGw1U2rFF+e8F8htjXsJ5PUB3GuXFvs8UdoAGVGHnTCkt2it01HuEfjyq7PKRuZVpqA2VqUuJL/1nNRKmEFeYfreJ3/YU/UUODgjS8AlPMuuzUhKqBF8JycWd10/eSrQVrPnjV6j+6mt6DrdVU33P102sLE/++apc3qAfvv9ilc+p55oreQap146q+JVQb7nJIXHGIdshQq+EMS9o7tnviuOjOblB1B6d+uL/fn7fCsV2sGVUXwXFeTfgiyL2+96uh/XJnDRv+Hktgi3Z1zroCddYpQQ9FyG9f7X3QTuee8nKmFSElyGFS1vnaS7GocrBv1mEZ7rAEZjO6Y4XjGDQlsOsamt2C2UtygzojDqpgdMeAzhYMn7kinRnwSgc8A2MuGNkcBOWFLmFm3DiuRyECToWt3FqMku0ltcGhtlUp2B/9/Sv4lGLxE/IJgQT6I6q03yUU8GcXZ3/X6ADMFjzff3w99je1eGo43eu3CfHXpG6FKAlsTna4/99qCoYNuZaGpT8cWYkhmNk6pGBgzwYAGTCIhuT+ejhINi6QwaGTKquMxVM3I+gUUvbCqaw/J4NkLThIK+gT2ph4gCMeiAlNA6H+vn3IRpDMpRrSsyF8OtzfP0hIMxAGRGa50iWfIG2g171eoGN1LoxFYxRQopWBUjeoehG9CLYoxQVM++DBf+tszYDxXC4U4frsErez4CoDXa69Igd/+/rPX5HD61bkDYiTp1B+us0cn25UpG7V/W5KaG9WkycJJ8jiqMOXVGB+AEb6khtqzJY8A1UzLYWFN61wVzARoMDh6DABFQNT4cvJ9PDxk3cbUj0iwUo9q0w4EooMBKN0RThtKSHwRK5BRB9RGTdL9DQHqw+H/C4s/G9/fy8s/F3Lub93dv5hqrj/kZz8ToXbT8KlDWjy+IUnwNZkrivsfj3PR8cr9lKtloBc3Ha8Bq7NutRjpcB+0aSpQS2UXAN3pwJeYL6IEk5Jrteiw/IPvzrYwuB+rUppILDqws/1BNH2WfB8kukC06glxy9A1+RGeH0f7OSHmp2P2OPL4WPXcYsjbrA9+HwoV3eUAi82T2xwpi8EViz1Ol9WoTIHJjaoROfSGW2DGlTI64J/NbF22FezcvsP/voBVu5YKX0OZ+t8xB7qYiWstBi5vf3S3SwuXlLIuaPrhxWwuzW7FxUcF3cDSefnhDZvF54XZanpzkZTfx6CQqB/OIc9J05egkOvqd0J54UEcc/VfFZXpd0iPV5prNfN+8fTHU4pqIIVnO8X8AF7uQIXBSQwQCcCygeh8PgoYUHLB8+DgqN3Lu0aNX5d2Rzv6jtHaHsu76L1H74XkfF7qsX/qVp/X414EsluU6UxEMrT4W7+4WLj9nXjncsKfuiSZYsg790oFE5uJFgAZ3oP2KgwKUVZ4ZT6elzdEdBatgbS5m1ffg15sso2W/OusGScXNB3BwcUUwT7Ixknrh/kaFYs0GeSdHa2pe+GrXuXyQs32FcdingCHCghRRrv9iJvPX8wOthUoR3RD92Abi9OHtO5JxiGJzx//Jua0hi49syBU7CnWUqWCdwXvLAmzjFc5lbeWG6rrokB5sF7Wmw3po9xkd+g38ukS1HwLfXfoYJp25F1cvTEaWF1QMfHhVzYy8UWbhHs9gKjF9vhNL9W6byeeEpPOAiVtq4hLuZzdIXN1o07wBnkWI5zNBolEUH2zgiy22D+3R20rVvqL2C6i5IbrlWFmQXOZYZuvZ7GnGbTOF1vuIS4BXi8UZQTtJ4G1uSvCLWCCD4Vo02X7vpgdxA9BPuHeZauai7Xe+QweukOXLjEJKKvw8xkyLTaeRv+DjVmN7hoD5qsViudkdcun9uzfTzLEIbH8xfBRlIsoFUd1Ov74tLdwJ14nnO1jR/fZXybJZ3f19B7XVm3c151pcL12UV/x1x6CLj2B4duMoR6gPuvLzpiXUiW8b7KxlsO6rbpVEr+qwpnRa07SEc4l+unMZM52PAT/HxycHAQFIXthanAo1af17f/kM7wSX2Gn0EwN8Xg/nb6Q9rb0smWhVoKnvUi1qE993Bbkzdw36YFSrJ7x8+PWCrwAnPPp9ew50ltZW4QErBggr5fu/b/hCS+Rw5fsL05IxdgRP71q+EMkDyEVN1ovx/B+lcEzyJ8cHsH+FiqxZAgzXRvGi1t4qHo7kBX4W0Y7tUAw/nbu3PB/o0ZBHiLVOdmxbcgsRqIb6rzqvCV62EP4SPTvdarV8Td/l/AQjXJdBG27HFQ0rCDEXsGbuEZxgR4fZFh/45XAAAmXOqL24wfXvvYBh9ilUArC/7+Ac8YsnMY+RZNCubkWVw7/+GN57DUF/3HMJ7geILjCX73E3yiLwhF7n94BCL+qnNvplfiN7/cQbt42VjMd7F+Ry3I5CvuiFIWvcYvGF/whAm6UuaVrEaNG3gtErwXkJVDgu9eztf4t6LFhDFhsgW3X30ZXH+fEuh6k+5eClgyON4eZXBQpxUoxdwhS5BlQMY/vKHmXI3XrzvcmbOT63TFI7qtN2DLquAQSuYZ3WVH/dGbFTjOAdNzKxREjFY5X4MpiDAFXTIOl/8MOP3lDSP6qeJwNzBfs5cc7qa/oOQyCCYCdsG30N6Ri7q5FyC+dS7xpqC3dWEYeHEr56pG9Yejt+sVOLnzdTADShh206BpqItSX9ilh29A4z8dwA799BVs5+H+4Vc3nqAjd0ty0KCAeg4UUQV0QBh76e4twg+1jebnff3Ij9iMlwzJAF1JsGD/qrfABPMakJyAyVTWpfzBIFeeo2NS6sr4T40DSuCFLFmISX+uJCD9Z8fPHlOupHByA5+AsUYs49GrUxBIBdwCrQt3EQ0/2/t1JRa4MP/x4vET+s3ccPm++TDpokgleqvg+QRNnHAyQTacY3jjmbfDr7Z6LTc320N58XVKl0m+ILgd12Qwc+3ghUJmZSG6d8GbCwUNst8xjFwaSwKU2nA/b6a/ojE4tyA2GHql3Ps+jzXe6gtz0NDXIMVUvqbha0Ujr8yAWgyHe1dp1b4tGzD949rX45MSwXhxK++Akm+w1+7O5MzfBa79pN6pCyKbGs7XDYDeXfBsXMqG7k+4hBvi0t0R6CwE3rkQKtWVwmMDSWuMwXRrLOd44xPvJxi8Nr3N6XjN5baN6F+vKu6T9LjLohspen42AkLc6DUHtx7hLh0auC/7j/vXDc7uuwYiFUKrHLiwJ1y3Jc72C6YFdIGYa32RPSrGP+4aFewJcL7ef9MOEr6BrbngeCGjx0x5rtVwzuFmsX+HyFCnaVWWCD0oCaVDx84laqPl3WYJbaaY+z1d0nlvOhydKnafsSkQrshENgHYNaZ4m1BSgck8NdMxngXK/Obo6nt3BeVhcAXlJTpxfX4jarCVxo67FJPUNGTjhIvU5PuVxl1u8ld43ciuAVhP5ihip2N2vP1+BZs7OUxwjxBzgJAA1808NXXcZaK0nbgwCjYfBoX8S3XMyb/nffM3rEwQhbl20ZNrseVu6sAztg48lHFIzr8QaTg5CS1ZobBlp9/2sRb3GnOv1UqXF0hIZgitIf4GabF+BCGy0quKVFnkO9dt5DTI3XY3d2B7fATW4k5suaFx04zsRg2fvpyciS2hQdfymQgkiwtJcri5ncEd/02uCdIMgSsTd4PHaY/dwfRNkOT33E+QLvw0zYw25uAuyvQN35+N1bJEDFRd04LONj1GyAtGLURPySxQCbuXZ64PXbRGvKXTnn4CJeF7bOJxs3ThwxNPAkjjSZjL8HV7QyFWMIFLTcmW7fBXjPoB3VIxBPL23x3yYRO4GuTiJvfY0fNHeG+IkMDw6PHPza8QVGHfMgpYEBardV6/r/Lc3/2gKYtLu4cYAndhBENNW4Lo7VglIQ9Mrem8FOW5KIf4A+TJs4btvHz5eLcJrW+ohtdF1wFlWMoCVEyNBOF1pOcEZMP34VLPauXu0t0mWttoTIQCeF+JfWkmIBxoWZYOtdHW0OguHto2PlnTtD3q3ruhTay6M8UYoo4h6hiijiHqGKKOIeoY4IoBrhjgiiHqeILjCf73PMExRB1D1DFEHUPUMUQdQ9SfbIj6U4qifHxe8bb/e9AZlr8bfbuBOYeeTzBay/GtIwuvZd/gmI8RqBiBuksEalulLnz80kVR6sDOAGrj2Y2fw3Jd+KxmPi4e1KpGlS4rdbaFYOBRE0Op5958jVmo0yUr+BoL3qBLEzIs3aVS1x1DLi1fqsJAAY5Tz4OkxgSe6YvDdKd+QyRmY6VutXovQGVx+kAhjEGVqLN8uhwxKGHl4QHYFFSvJPsJUkgrhEG44pDAL7FGIYjShSsJhXddXQv9dPjO5DRo8lU9cgr+zSTXZAN92LNqQm2xNbB2xDykHkBQAACCQz5ft4eYIjK0eOoKYddlOB2wWWXDqm8QuzNWr1a3Ya5blUS1OeimyKNQ2tblcduF1mrKnLYX5vb0CKv4MezwYxjHnUB3j8ODfGNq2g/LQa6hl03msXWON+za9rW528K9em8Yxdvkkn+/ssihmwJw00u/AgFRw7G+BcGEp9/X+mpJJtRpoMYoaJ3mVvrTu1BRWEwyGNpW0QMv3f6k46J8jJhOHJNTyCZbdLf/koI2xx00UtRQ3YTKGzw9E1ikx+m7jYLn4ABQhO72atcfzQwbNnjsNgmxgdtIGJzoPHcsD7Juc0pYjymGgkOKJuumetxPos7cJQJ16ZMG2Ox5c/ZR1OCzaU2RZosPriFCmgzqzajFbDFlaPz+netiHt0d+6O2bJAcLW4l1x77Gd+kpPAmW7rLVI7fvw9Vwu3k3dSIm3WHP1RhuPWC+yeoRsDwtBI/ztHZEHFdEdcVcV0R1xVxXRHXFXFdERUSUSERFRJxXfEExxP8OZ7giOuKuK6I64q4rojririuiOuKuK6I64q4rojruguuK4K4Iojrg4K4Imbrs8Jsxej2Hxvd3ljwCISLQLgACBdhbxH29onC3iLc7ZOGu3UT/m18SOXmv+qrGv9Tyx1DNmeOxUKR+9xQO35bEjIcWJ3SkY4tb9xWngtJdc5zCUWCoZY6ugF16UpyCsOodYbv3NKSwdjIhMjqmu13pjx5vuFIu8hJSsGVOswYEPftsC2bRNMmx62k5vbPvdvLJryT8GacS8s3B07Cmai9/1ALvq4e5gtDZmJWLdgFea3gGJaaSm1uN6H/ybMT6sZRoaOxL3tsMVEW0mAtYpZpjFRhSlDiiV5zIk/IOxDdkZNoLsNno/165ZR+TnVG9T3dWt9MVNfzE//U+d1nWFB8SXKAevTZWK/lNTcQQOiAPvaZTA1m86NeRh8hjbQp46vNIT0k7xdQxFxX6oOxHJFhMcyqTCEgJqhHcSn7j/btQnDHj2DZoKGZaEbf49v6HE//c22/hyk3O4zCcS5KNayVTmTIXh03KNjo2TDVirhnMk6+8EyWnk3KRgzW/+ydcSwVGUtFxlKREa8d8doRrx3x2hGvHfHaEe35kQEmP1e0Z8RrxxMcT/CnfIIjXjvitSNeO+K1I1474rU/Wbx2LBX5EeIrYqnIWCrSxlKRsVRkLBUZL3R8lBc6PsbLU7csFRkEgYNakNeFIGMFyJgpLEaeY+Q5Rp5j5DlGnmPkOcatYtzqE45bxchzPMHxBH/KJzhGnmPkOUaeY+Q5Rp5j5PmTjTx/SsGRj8/ZHTOFxcDS5xhYihUg75iCJCYP+1SSh8UKkJ93NrFYAfKaXYuJr2IFyJgK698iFVasAPlZpMSKFSBjBciI64q4rojririuiOuKuK6I64qokIgK+bMHH3Fd8QTHE/yZnuCI64q4rojririuiOuKuK6I64q4rojririuiOuKFSAjiOtPh/jECpCfJWYrRrdjBcgIhPt4gHAR9hZhb58o7C3C3T5puNubsPxWdjZclLpaDRWl4HIuiaT1RiHsUmf+FToE4FKwQmGhPvQqkN1+OawTBg75Sg7PxHqICzNIXBTHr4Aoz2UKv78QpQGHYvIGSKtuhop/zeCcDLUaznS2bhpxtcH8XHd2k/DbTmWx+qtYYSxWGIsVxiIeMOIBIx4w4gEjHjDiASOaKKKJPn00UcQDxhMcT/CnfIIjHjDiASMeMOIBIx4w4gE/WTxgrDD2EcbvYoWxWGHMxgpjscJYrDAWAcMfJWD4YwTnxwpjrWBfzEQTI88x8hwjzzHyHCPPMfIc41YxbhXjVjHyHE9wPMGf/AmOkecYeY6R5xh5jpHnGHn+ZCPPn1Jw5ONzdsdMNDGw9DkGlmKFsZic5jNNThMrjH3e2WpihbGYWCVWGIupVv7dU63ECmOfRcqVWGEsVhiLuK6I64q4rojririuiOuKuK6IComokD978BHXFU9wPMGf6QmOuK6I64q4rojririuiOuKuK6I64q4rojririuWGEsgrj+dIhPrDD2WWK2YnQ7VhiLQLiPBwgXYW8R9vaJwt4i3O2ThrthZrBuOa52pbGmkpevONb7RVh5rPmEDgkYzvQ8GScrbZAZcbtMxsne+eGea3fvbWPxXu352mUG045R4bKqzJNxsrR2ZcZ7e3wlR25JR1JjJ0akVSntGt8+Wsn/FOujCvp5jRXLfoQ/DvGv4OWX6VIUtOX+hcYa5vhD1xqm95xHFM61K5WVYFCMopBpLoWyD0uBjnaeE13oM6F+bk+jsstgHnvU5R6+mSAOaYWDu0IqCidVj5Ljj5jWERqmiOggcVXgLn15N+QYvxqtTujg/VNn68cNlsY7UX4A6aJruJZgbrbgzyhkWmpDBeHQ4/Of1UyUSlhh/pF4VBs01u9qsXolU/CxwBxhWVLkJffQzocX6lJj37J7Z3XT95JBkotLcJhPMMXmSpOHB+BT+/sPBkkuC2mT8YP9QeJc0ZMW3IxgThCkSIWZzMQctYvDQfAjn+M44TcLgQrLF8k4+UYU32Fezcz/sAe/oCRASF0Z7IOXKpP6WfPaxO3GCf49eQb+VuCQoPicHyStKUiFOYEnbiqEe7pqGa/QayAyAbomrO/DUdPQKUVDcWmHh18N9x8MCyjRVyiJmfUuJxDXmXShiAewiNKSCw0Xzq6RcxS8PMv0BRVVyycrbiHbaUDKnopTXez54JHZe4vuv+wK2CVsTPMdPkG+dIW0afi5mCylATSeB3td4+Z06wLv0OUBz+J84bqTxy9fsaMXx+x88wj7Z8ZFb8ABYkteRzTQUex0HOBVSP4XYkZ1DsHCzx31mtGpgkTE4FKfS5VhlELPma5K6oBbNu1nWsD9voHTKVSGUfLvppgRFsbsfzKYoFhXNpcQr3c+9XNeYhDEVDMH33NAJWnw65M6Uuce4xGDljLhIv+gjoCKYSsJkD98Ya4hjy7jDLIYZ7zMcA1BfzK2rFIL6MhTdaqGOExMAAyhfVEa1AUNu3///PD+/RG8MQ0nNnVNG8bZUooSSA7Oc9MuRBlBY4A8vmUKaE4Y0HK9WgpcYsa+1+C6Q341YNNabIwbsdFQ3XR0CnTqRpaMk8PR/mgfSbAszI9zX9Syn3jR47yHrw71fOgY3h7W2sz1AomtLYzAOz0Km5DFwjc5udBlBodntEK9g+eY8Lkh1ATVg4yXZ+/S+iSXi6W9rg/U4VNUpEXBJfQwFyIDpfR/BK3jWQQxXRDWwHGVo+wc3P0ZeynVIhfsIfmff3KCuhNrdCFh8KdR/A40Ne6bIK0YqNIjD9LaU67pFJUiF+dc2QaE7fidN/akMAO2lIslzrt53yi5WgmLumEGoWt2AvBBcc5zdlQtgDxExhpNFgkaY1yeWCFwyyGkoZ0tJIHm2JPHr2pSn60p5TSmgQY/HvF++Zsz0uZjOAL375OvFlyrvBAQrbx/fwz5m22pc7biGOeCD3amej43wk4HbIqSYLo7QCaz7nqv3bxo2dbMyUXWkotkauQYnVGiKnmO35yJNRCLY2GlX5URDfWH9ayUHiEOwzzKfq0MmdfTXvE7daCembAXAmJS+6P9KdtZVSVkqaeOd7Hn6UH4xDW2O2KvKAzOZhDRcxuNXCps8mBKbeyPDqZurCRFpVrgOHGZatryEtfUvsZQ2A7Ys2cnA/ZwyaUaQBT7ZyNK9kjMkbt+Xynilk0jVjNZgIyoAyCO0lLhBtOQEts5OXqyC2M6JhHOeGgHT72Ty2oXnoN4d4WeYkfTv3mvpF2yNUgQfaEw9jxgtUwmAtjmt6HU60h73oSHAf3oECQQaScLyi+3LuuTlTVHi+AdPMcYMI1n2im0O8WT85inS2/lArk45YXIpmHNU5Ki9UEgE7hGoRiH3inBOU5fUZmE2hFZOyAg1guqKHiWTTWrWT7Y0qAGqTqQX2gT8IUVJ7ttQAgR73hc985el8164zTv3/e0ChwF5JO5fx/WuWZvzIiCo04Li1xCaCWMsHMq2zBgmS64VMMO38M9c4xKNINGNIkfOclwpPbSHwDUS2YCVCpPn5lELmXX2OYTzzWdNkmusZruuDIXiHIug9mTJL4F2/zLX9g/uZEpEUDNSGfNb15iowufMwysE9U22vkYPpxOp2CbnKq3IOtPyRzplGmY5Tw9Y0udC/OP02RAL9Iiw5v4JcPCC6gawG+v3Y/+Z6JGardYD+mn04TRW1dvsNEr13RzdFvN9yverk2dwrbMZJkND0f7bpTw1RaFGz473Mf+r07VFS6EW1pnpzGoqB2IEFrm2n9CjyWs7n+8/PG55zEd7/IU1xPEC3U/HbSBZT1sigjffch2yJkxYB61ssuGbOek/iO4pkUbj4CgU+X7u7GBozoGUN+xKHVunKvIkyJXWUD8rtwEDZQ6GrnNn7IhNImuGS8t4RMKejbKhvsKtUsbagHk/6bv0ZXkVhROOmlANFxiD21etzlXKvWwcQNjYxzYVMd6Dtrz+7U7Zkfs5U9Ph7k8Ez6ubTVTvATAcl1pBmZl1srySxdLx8NoBswIYtEUzzZsUclMUO9bZP0OusU7Q2grAPujfRLyXuugSZEOcFA/dHpI/bQRh8tQBxmxI1aKVBcFBVPRLsddRyUNkT37hw9o0KR/TTJZuFL3U7ZD+9MesQpk8EyDgAD+WVHIC+UhaUdaOZWONU2O2Eu3ag/p0aP6Ea0fMmNC07VpklQ6tuPgR8GQGJlSvo5JgOJ1w0HYpRML5Lho6H/E7t9/RF5MkPEH+2GfTqG8ptPezsyZXOE8Gu20081++7T1uFv61p4NQe8NbgDOUeSUKIhC7CQoXE6HQBEteCNJ3RU73PGuP6eZ6e6YPa+nVr8WNuwWEpUEuIOIXJL4VatldArdpWH8YFu7AH0E3El5w5Cb924/5qDt6wbd3/S1o67dYTUb2h2zH149ezpExxCzfAFtXZR8RYBJsZAK5Y7jcZ58s3qLHY7ym9l3u9SH86/dsgcXUL6+7T1qfDweQ5y5cdEgaBB0uGb/aGX3aBV+PAkXKXxEqARAy8+0XVLbqAETU+3VYnqPR0uZ6JIx6gODzac4hM5DvzOkenwDXoDvAo3Drap7uuceb2ga/ih7m+eG0wt6aG0f9ZhH/6o4xmbxci2CXoAW2reY4bNVzlPRo6c7zwGby9JYkmCo6zu+SqLrdW0BonZ9LsXFmx30k+xRT0OusmGtNuzV9txezTyH/kNHg+DEDQmQVCw/zfVKjJwRZepzs+HwZTv+9kQR2Jx1M7sDVhQl2wHW11XWd9EaVVo5KdxyHHfHVRsPdcdUG8tqJG13Bvp9zW66HZG0O2bPbpBBVakcp2gEkJO9Vs/nXkOAlgg+21jK7s70TqgoOJ1g1wEl3Xp4ryQucAYqgIPKww12qo21P/pyuD/6mvru+MqnbMdd+NkdI24YnMiwJqZf1sD/zT2FcShpBqZSOD8w/fwJB4vvVLVPuN+B1qEGcqFjt0EiwflsbTG93r9lwTe4bfDug/3B5kkOlfjeQ7xNyfaQAo6FzjBOLgxT3KIaV1cm89a4caBsAGFTc9L4UobZoOPMkAYuORAauTPKUb8p1afwep2FFzV8f1WKYR2mqhEAQFcQRZ9VKsuF28GTQI98gR0Zt5ugbrdttunYx/PuGZZWFi+xiWzhgvO6ZCdHT4j6bo60TMdsZ7Gyw680zaWQvwHuNPQv7N7QFPoN6nZG+0NblbPf35wpct/Yl6MHNzdGCwhs+BWfVTkv0R/lz0K3H7yANUQLEPvMRAq33L8a0iJ0yXS0gb/o3fkjr4y7Pfavg5cKjV53ZwOJOkNnnkvkQVU2nSe4Cd7XuHuPESFihrinc+QKp8ws+bnU9SUpYrMzsdYq8zRohCVfVT2qFGsBkoz4L5HrFLFKHlhCai1EcGCtGjfl9IueCpHT9r2rRt/ppAVp5GSAyHGy8mG4dsbLSfenjyMM6e+hUAupxO7GSd3ivribUWP1qkcTMEJlzhwI+MaoY6Nc822D9+lr5pjSg5AnRBrcHeJw4JCCJQPcVCkg0ASBMI8lA20PwKx1epHaF0n3YmqjiCFTBtMIrVFUDFNeoaqnXgpr667JXLZaY+ACW4f7TJRYwlMXwn/8ysOtp7rjRucMd8Y/rYs1XsM+a06e6qy5UldPDBUHUMcX6ClacfhPJqrpLti+tj4kU15ZjaS55OfCs0u2qBAPEfRDOvOFaAz50BeDHu4VUjcw8Hpw5NNsQgIbxFjzp1tbmnQcUfb7b30stev/XXu7Z523FK+H7kOGTxptEDyTUx8chwVb2iKfojo3BX1uSu0FMfOw1SP288nThnWE3JflUp0ZwOkDiGrqA+kNsqkUqERnDaaqTkZy/MhptUHIvd2tU4D6+nV3Ets9U6D+Vp3jq/26U9c+8pvRtolggZ0/1a1roAIFC0nvtMKkzsW1BYQQNBOuDLUTTLPPTAqZIRzUSeOS3UaGjvHW79UnDpzvZY6HALgWVdQ9FyVAG5zocpYExvWnW/Qkv8fFCp5W6FHwSvhDr9uVXGW6UHA0/Y08vGExYj/IxdJf+jfeatgf/W0XZEVWpQ6/T7DJ2sJDipS5oFD9xteHu2yN98zx27lO8fYwInxgDSACYKxMff1q5/HklxOEPJmWSbJNisCLdJXCBTfcxAJGeZ9N5+ghBzjxSiie23WwOo8EMXVaazCa0N5ZOYAo+CfNgG6GU+nglbCyxxlGMU9giRDipH4pDJWKnm6dLHLdpks0jjxR1DachJ3D9VeAJgXUlLmp35vPWpdo2xZLQ0Pw+/7o61bggpac7I79+snGAtOnD+oXuitBz7+89myRK3iyHWrea+I5dQt8E1sR7V0qoaWm+u5oAV1AwoRekcB4LhfKhOBVr4jVTIYgJw4LBtxlb5VziZknEM7x1oEeXyeIR/JwykESIFiSgcPhvRkkS0BKjl8nb9+CS/rnMr+6gp8dTu/1G4BZkg5JWfOcjZWM5zw34hpERidq44IScJEwzEHQDk90Qcjt+dUpttYB+DMZOJhoML2rN1cDj1C826A9LgrFT8HPQHlDHYFyNhBkEajfihBd7Pe8TnABgCiN4I6SYtu6slvnReN3cbjhK1kIXdlwioiA/uPnUEAGrneeyPAZNtOdD737kEY9fLVehYjeAPi2B9wl+OIoTcXKXvtuCAR+8ePLVwlkdckQRg/cKRknJb8A1CS/IAIiaYowRPztbeKVxGScUJvwv/8fiVgWrw== +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 @@ -122,14 +122,14 @@ Example: **Example:** -`json -\{ - "reranker": \{ +```json +{ + "reranker": { "type": "customer_reranker", "reranker_name": "Rerank_Multilingual_v1", "limit": 50, - \} -\} + } +} ``` `generation` (object, optional) - An object that controls how the agent creates natural language responses. If this object is excluded, summarization is disabled. @@ -213,7 +213,7 @@ Setting this value too high may prevent the model from generating a response. ","end_tag":""},"reranker":{"type":"mmr","limit":50,"cutoff":0.6,"include_context":true},"metadata_filter":"doc.industry = 'banking' AND doc.region = 'EU' AND doc.year = 2023"},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant for financial analysts.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Analyze the $vectaraIdxWord[$foreach.index] search result for financial ESG compliance.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Summarize ESG compliance trends among EU banks based on the above findings.\"}\n]\n","max_used_search_results":10,"response_language":"eng"},"save_history":true,"intelligent_query_rewriting":false}},"Legal":{"summary":"Enable legal professionals to summarize recent California court decisions on intellectual property rights, utilizing a custom multilingual reranker for precise result ranking and markdown citations for seamless integration into legal briefs, powered by Vectara’s advanced RAG capabilities.","value":{"query":"Recent court rulings on IP rights in California","search":{"lexical_interpolation":0.005,"limit":100,"context_configuration":{"sentences_before":3,"sentences_after":3,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":100,"include_context":true},"metadata_filter":"doc.jurisdiction = 'California' AND doc.legal_domain = 'IP'"},"generation":{"generation_preset_name":"vectara-summary-ext-24-05-med-omni","prompt_template":"[\n {\"role\": \"system\", \"content\": \"You are a legal research assistant summarizing recent court decisions.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Evaluate the $vectaraIdxWord[$foreach.index] case result for IP law in California.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Provide a legal brief summary for the query '${vectaraQuery}' based on these rulings.\"}\n]\n","max_used_search_results":15,"citations":{"style":"markdown","url_pattern":"https://docs.example.com/cases/{doc.id}","text_pattern":"{doc.title}"}},"save_history":true,"intelligent_query_rewriting":false}},"Support":{"summary":"Assist IT support teams in troubleshooting printer offline errors on Windows 11 by searching an internal knowledge base, generating a step-by-step fix using RAG, with part-level metadata filtering to pinpoint relevant troubleshooting steps and a custom reranker for enhanced result accuracy.","value":{"query":"How to fix printer offline in Windows 11","search":{"lexical_interpolation":0.005,"limit":50,"context_configuration":{"sentences_before":3,"sentences_after":3,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":100},"metadata_filter":"part.platform = 'windows11' AND part.product = 'printer'"},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[\n {\"role\": \"system\", \"content\": \"You are a technical support assistant for Windows systems.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Consider the $vectaraIdxWord[$foreach.index] troubleshooting step.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a concise step-by-step fix for: '${vectaraQuery}'\"}\n]\n","max_used_search_results":10}}}},"schema":{"description":"Request to search a specific corpus within a customer account and optionally generate a response using RAG techniques.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking.","type":"string","maxLength":5000},"search":{"title":"SearchCorpusParameters","description":"The parameters to search one corpus.","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","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"}]},"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}},"required":["query"],"example":{"query":"How to configure OAuth2 for microservices in Kubernetes?","search":{"metadata_filter":"doc.topic = 'authentication' and doc.platform = 'kubernetes'","lexical_interpolation":0.005,"limit":50,"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"vectara-summary-ext-24-05-med-omni","max_used_search_results":10,"citations":{"style":"markdown","url_pattern":"https://vectara.com/documents/{doc.id}","text_pattern":"{doc.title}"}},"save_history":true,"intelligent_query_rewriting":true},"title":"QueryCorpusRequest"}}}}} + body={{"content":{"application/json":{"examples":{"Finance":{"summary":"Empower financial analysts to retrieve and summarize 2023 ESG compliance reports for European banks, leveraging Retrieval Augmented Generation (RAG) to deliver concise insights from financial corpora with intelligent query rewriting and maximal marginal relevance (MMR) reranking for optimal result diversity.","value":{"query":"Recent ESG compliance reports for European banks","search":{"lexical_interpolation":0.005,"limit":50,"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"mmr","limit":50,"cutoff":0.6,"include_context":true},"metadata_filter":"doc.industry = 'banking' AND doc.region = 'EU' AND doc.year = 2023"},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant for financial analysts.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Analyze the $vectaraIdxWord[$foreach.index] search result for financial ESG compliance.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Summarize ESG compliance trends among EU banks based on the above findings.\"}\n]\n","max_used_search_results":10,"response_language":"eng"},"save_history":true,"intelligent_query_rewriting":false}},"Legal":{"summary":"Enable legal professionals to summarize recent California court decisions on intellectual property rights, utilizing a custom multilingual reranker for precise result ranking and markdown citations for seamless integration into legal briefs, powered by Vectara’s advanced RAG capabilities.","value":{"query":"Recent court rulings on IP rights in California","search":{"lexical_interpolation":0.005,"limit":100,"context_configuration":{"sentences_before":3,"sentences_after":3,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":100,"include_context":true},"metadata_filter":"doc.jurisdiction = 'California' AND doc.legal_domain = 'IP'"},"generation":{"generation_preset_name":"vectara-summary-ext-24-05-med-omni","prompt_template":"[\n {\"role\": \"system\", \"content\": \"You are a legal research assistant summarizing recent court decisions.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Evaluate the $vectaraIdxWord[$foreach.index] case result for IP law in California.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Provide a legal brief summary for the query '${vectaraQuery}' based on these rulings.\"}\n]\n","max_used_search_results":15,"citations":{"style":"markdown","url_pattern":"https://docs.example.com/cases/{doc.id}","text_pattern":"{doc.title}"}},"save_history":true,"intelligent_query_rewriting":false}},"Support":{"summary":"Assist IT support teams in troubleshooting printer offline errors on Windows 11 by searching an internal knowledge base, generating a step-by-step fix using RAG, with part-level metadata filtering to pinpoint relevant troubleshooting steps and a custom reranker for enhanced result accuracy.","value":{"query":"How to fix printer offline in Windows 11","search":{"lexical_interpolation":0.005,"limit":50,"context_configuration":{"sentences_before":3,"sentences_after":3,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":100},"metadata_filter":"part.platform = 'windows11' AND part.product = 'printer'"},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[\n {\"role\": \"system\", \"content\": \"You are a technical support assistant for Windows systems.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Consider the $vectaraIdxWord[$foreach.index] troubleshooting step.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a concise step-by-step fix for: '${vectaraQuery}'\"}\n]\n","max_used_search_results":10}}}},"schema":{"description":"Request to search a specific corpus within a customer account and optionally generate a response using RAG techniques.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking.","type":"string","maxLength":5000},"search":{"title":"SearchCorpusParameters","description":"The parameters to search one corpus.","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","nullable":true,"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","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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}]},"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}},"required":["query"],"example":{"query":"How to configure OAuth2 for microservices in Kubernetes?","search":{"metadata_filter":"doc.topic = 'authentication' and doc.platform = 'kubernetes'","lexical_interpolation":0.005,"limit":50,"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"vectara-summary-ext-24-05-med-omni","max_used_search_results":10,"citations":{"style":"markdown","url_pattern":"https://vectara.com/documents/{doc.id}","text_pattern":"{doc.title}"}},"save_history":true,"intelligent_query_rewriting":true},"title":"QueryCorpusRequest"}}}}} > @@ -221,7 +221,7 @@ Setting this value too high may prevent the model from generating a response. diff --git a/www/docs/rest-api/query-metadata.api.mdx b/www/docs/rest-api/query-metadata.api.mdx index 899041689..3d52b29b2 100644 --- a/www/docs/rest-api/query-metadata.api.mdx +++ b/www/docs/rest-api/query-metadata.api.mdx @@ -5,7 +5,7 @@ description: "Query for documents in a specific corpus using fuzzy matching acro sidebar_label: "Query across metadata fields in a corpus" 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 @@ -54,7 +54,7 @@ Query for documents in a specific corpus using fuzzy matching across specified m diff --git a/www/docs/rest-api/query.api.mdx b/www/docs/rest-api/query.api.mdx index fb5afce00..a019a1a9d 100644 --- a/www/docs/rest-api/query.api.mdx +++ b/www/docs/rest-api/query.api.mdx @@ -5,7 +5,7 @@ description: "Perform a multipurpose query to retrieve relevant information from sidebar_label: "Multiple Corpora Query" 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 @@ Perform a multipurpose query to retrieve relevant information from one or more c ","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[{\"role\": \"system\", \"content\": \"You are an HR policy analyst.\"}, #foreach ($qResult in $vectaraQueryResults) {\"role\": \"user\", \"content\": \"Evaluate the $vectaraIdxWord[$foreach.index] RSU vesting schedule for Canadian employees.\"}, {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\"}, #end {\"role\": \"user\", \"content\": \"Compare RSU vesting schedules for 2022 and 2024 policies in Canada.\"}]","max_used_search_results":8,"response_language":"eng","enable_factual_consistency_score":true},"save_history":true,"intelligent_query_rewriting":false}},"Finance":{"summary":"Analyze and compare RSU vesting schedules in 2022 and 2024 equity policies for Canadian tech employees, highlighting changes for HR policy updates.","value":{"query":"Compare RSU vesting schedules in 2022 vs. 2024 equity policies for Canadian tech employees.","search":{"corpora":[{"corpus_key":"fin_docs","metadata_filter":"doc.type = 'equity_policy' AND doc.country = 'CA' AND (doc.year = 2022 OR doc.year = 2024)","lexical_interpolation":0.005,"limit":50}],"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[{\"role\": \"system\", \"content\": \"You are an HR policy analyst.\"}, #foreach ($qResult in $vectaraQueryResults) {\"role\": \"user\", \"content\": \"Evaluate the $vectaraIdxWord[$foreach.index] RSU vesting schedule for Canadian employees.\"}, {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\"}, #end {\"role\": \"user\", \"content\": \"Compare RSU vesting schedules for 2022 and 2024 policies in Canada.\"}]","max_used_search_results":8,"response_language":"eng","enable_factual_consistency_score":true},"save_history":true,"intelligent_query_rewriting":false}},"Support":{"summary":"Diagnose and resolve intermittent login failures in a SaaS portal on Chrome, identifying SSO and caching issues for IT support resolution.","value":{"query":"Diagnose intermittent login failures in our SaaS portal on Chrome, focusing on SSO and caching issues.","search":{"corpora":[{"corpus_key":"support_kb","metadata_filter":"part.product = 'portal_app' AND part.browser = 'chrome' AND part.issue = 'login'","lexical_interpolation":0.005,"limit":50}],"context_configuration":{"sentences_before":3,"sentences_after":3,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[{\"role\": \"system\", \"content\": \"You are an IT support specialist for SaaS applications.\"}, #foreach ($qResult in $vectaraQueryResults) {\"role\": \"user\", \"content\": \"Analyze the $vectaraIdxWord[$foreach.index] troubleshooting step for login issues on Chrome.\"}, {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\"}, #end {\"role\": \"user\", \"content\": \"Provide a resolution for intermittent login failures in the SaaS portal on Chrome, focusing on SSO and caching.\"}]","max_used_search_results":10,"response_language":"eng","enable_factual_consistency_score":true},"save_history":true,"intelligent_query_rewriting":false}}},"schema":{"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"}}}}} + body={{"content":{"application/json":{"examples":{"Legal":{"summary":"Summarize arbitration clauses in U.S. SaaS vendor NDAs, focusing on governing law and venue, using a custom multilingual reranker for precise results.","value":{"query":"Summarize arbitration clauses in U.S. SaaS vendor NDAs, focusing on governing law and venue.","search":{"corpora":[{"corpus_key":"fin_docs","metadata_filter":"doc.type = 'equity_policy' AND doc.country = 'CA' AND (doc.year = 2022 OR doc.year = 2024)","lexical_interpolation":0.005,"limit":50}],"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[{\"role\": \"system\", \"content\": \"You are an HR policy analyst.\"}, #foreach ($qResult in $vectaraQueryResults) {\"role\": \"user\", \"content\": \"Evaluate the $vectaraIdxWord[$foreach.index] RSU vesting schedule for Canadian employees.\"}, {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\"}, #end {\"role\": \"user\", \"content\": \"Compare RSU vesting schedules for 2022 and 2024 policies in Canada.\"}]","max_used_search_results":8,"response_language":"eng","enable_factual_consistency_score":true},"save_history":true,"intelligent_query_rewriting":false}},"Finance":{"summary":"Analyze and compare RSU vesting schedules in 2022 and 2024 equity policies for Canadian tech employees, highlighting changes for HR policy updates.","value":{"query":"Compare RSU vesting schedules in 2022 vs. 2024 equity policies for Canadian tech employees.","search":{"corpora":[{"corpus_key":"fin_docs","metadata_filter":"doc.type = 'equity_policy' AND doc.country = 'CA' AND (doc.year = 2022 OR doc.year = 2024)","lexical_interpolation":0.005,"limit":50}],"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[{\"role\": \"system\", \"content\": \"You are an HR policy analyst.\"}, #foreach ($qResult in $vectaraQueryResults) {\"role\": \"user\", \"content\": \"Evaluate the $vectaraIdxWord[$foreach.index] RSU vesting schedule for Canadian employees.\"}, {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\"}, #end {\"role\": \"user\", \"content\": \"Compare RSU vesting schedules for 2022 and 2024 policies in Canada.\"}]","max_used_search_results":8,"response_language":"eng","enable_factual_consistency_score":true},"save_history":true,"intelligent_query_rewriting":false}},"Support":{"summary":"Diagnose and resolve intermittent login failures in a SaaS portal on Chrome, identifying SSO and caching issues for IT support resolution.","value":{"query":"Diagnose intermittent login failures in our SaaS portal on Chrome, focusing on SSO and caching issues.","search":{"corpora":[{"corpus_key":"support_kb","metadata_filter":"part.product = 'portal_app' AND part.browser = 'chrome' AND part.issue = 'login'","lexical_interpolation":0.005,"limit":50}],"context_configuration":{"sentences_before":3,"sentences_after":3,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1","limit":50,"include_context":true}},"generation":{"generation_preset_name":"mockingbird-2.0","prompt_template":"[{\"role\": \"system\", \"content\": \"You are an IT support specialist for SaaS applications.\"}, #foreach ($qResult in $vectaraQueryResults) {\"role\": \"user\", \"content\": \"Analyze the $vectaraIdxWord[$foreach.index] troubleshooting step for login issues on Chrome.\"}, {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\"}, #end {\"role\": \"user\", \"content\": \"Provide a resolution for intermittent login failures in the SaaS portal on Chrome, focusing on SSO and caching.\"}]","max_used_search_results":10,"response_language":"eng","enable_factual_consistency_score":true},"save_history":true,"intelligent_query_rewriting":false}}},"schema":{"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","nullable":true,"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}}}} > @@ -70,7 +70,7 @@ Perform a multipurpose query to retrieve relevant information from one or more c diff --git a/www/docs/rest-api/replace-agent.api.mdx b/www/docs/rest-api/replace-agent.api.mdx index 8cb7538b3..29b62a23f 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"}},"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"}}}}} + body={{"required":true,"content":{"application/json":{"schema":{"description":"Request object for creating a new agent.\nThe entry point must be defined via first_step_name (preferred) or first_step (deprecated).\n","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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent, keyed by skill name.\nSkills provide specialized instructions that can be invoked during agent execution.\n","type":"object","additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]},"example":{"code_review":{"description":"Reviews code for best practices.","content":"When reviewing code..."}}},"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":{"description":"Deprecated: prefer defining all steps in the steps map and using first_step_name.\nInline definition of the entry point step. Can be combined with first_step_name\nonly if first_step_name equals first_step.name AND steps[first_step.name] is\nidentical to first_step.\n","deprecated":true,"title":"FirstAgentStep","type":"object","properties":{"name":{"description":"Unique identifier for this step within the agent. Must not conflict with any key in the steps map.","type":"string","minLength":1,"maxLength":255,"default":"first_step","example":"classifier"},"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["name","instructions","output_parser"]},"first_step_name":{"description":"Name of a step in the steps map to use as the entry point. This is the preferred\nway to define the entry point - define all steps in the steps map and reference\nthe entry point by name here.\n","type":"string","minLength":1,"example":"classifier"},"steps":{"description":"A map of named steps keyed by step name.\nSteps can transition to other steps defined here via next_steps.\n","type":"object","additionalProperties":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.\nThe step name comes from the map key in the agent's steps map.\n\nA step gets all previous session history in the agent session, including any prior agent steps,\nthen the agent decides what to do in this step based on the given instructions. Finally, the\nagent either stops working if there is no next step defined or continues to the first next step\nthat matches the condition.\n\nAn agent always executes steps serially. If parallel behavior is desired, giving the agent\nother agents as tools is usually the most correct approach.\n\nEach step can only use tools defined by its `allowed_tools` list; if this list is not specified\nthen all tools known to the agent are allowed.\n","type":"object","properties":{"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\nIf omitted, the agent may behave oddly as it has no system instructions and\nwill just attempt to respond to user input and previous session history.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"description":"How to parse and format the agent's output.\nDetermines which event type is emitted.\nDefaults to 'default' parser if not specified.\n","allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur. Useful for keeping the agent on-task during long conversations.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\nTool names must reference keys in the agent's tool_configurations map.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["instructions","output_parser"]},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}],"output_parser":{"type":"default"}},"support_handler":{"instructions":[{"type":"inline","template":"Handle support requests"}],"output_parser":{"type":"default"}}}},"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},"compaction":{"description":"Configuration for automatic context compaction when the session approaches context limits.","title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}}}},"required":["name","tool_configurations","model"],"title":"CreateAgentRequest"}}}}} > @@ -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"}},"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"}}}}}} + 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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent, keyed by skill name.\nSkills provide specialized instructions that can be invoked during agent execution.\nThe skill list (name + description) is shown in the system message; content is loaded on invocation.\n","type":"object","additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]},"example":{"code_review":{"description":"Reviews code for best practices and security issues.","content":"When reviewing code, focus on..."}}},"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":"FirstAgentStep","description":"The entry point step for an agent, with a unique name.\nSee AgentStep for full step documentation.\n","type":"object","properties":{"name":{"description":"Unique identifier for this step within the agent. Must not conflict with any key in the steps map.","type":"string","minLength":1,"maxLength":255,"default":"first_step","example":"classifier"},"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["name","instructions","output_parser"]},"first_step_name":{"description":"The name of the first step. Matches first_step.name.","type":"string","example":"classifier"},"steps":{"description":"A map of additional named steps keyed by step name.\nThe first_step can transition to steps defined here via next_steps.\n","type":"object","additionalProperties":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.\nThe step name comes from the map key in the agent's steps map.\n\nA step gets all previous session history in the agent session, including any prior agent steps,\nthen the agent decides what to do in this step based on the given instructions. Finally, the\nagent either stops working if there is no next step defined or continues to the first next step\nthat matches the condition.\n\nAn agent always executes steps serially. If parallel behavior is desired, giving the agent\nother agents as tools is usually the most correct approach.\n\nEach step can only use tools defined by its `allowed_tools` list; if this list is not specified\nthen all tools known to the agent are allowed.\n","type":"object","properties":{"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\nIf omitted, the agent may behave oddly as it has no system instructions and\nwill just attempt to respond to user input and previous session history.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"description":"How to parse and format the agent's output.\nDetermines which event type is emitted.\nDefaults to 'default' parser if not specified.\n","allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur. Useful for keeping the agent on-task during long conversations.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\nTool names must reference keys in the agent's tool_configurations map.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["instructions","output_parser"]},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}],"output_parser":{"type":"default"}},"support_handler":{"instructions":[{"type":"inline","template":"Handle support requests"}],"output_parser":{"type":"default"}}}},"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},"compaction":{"description":"Configuration for automatic context compaction when the session approaches context limits.","title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}}},"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/replace-corpus-document-metadata.api.mdx b/www/docs/rest-api/replace-corpus-document-metadata.api.mdx index 7d0ab3bd1..892f14b0d 100644 --- a/www/docs/rest-api/replace-corpus-document-metadata.api.mdx +++ b/www/docs/rest-api/replace-corpus-document-metadata.api.mdx @@ -5,7 +5,7 @@ description: "Replaces metadata of a document identified by its unique `document sidebar_label: "Replace the document metadata." hide_title: true hide_table_of_contents: true -api: eJztW3tzG7mR/yoo1KUq2fClhzcxL5c6WtaulT17ZT22cpFVNDjTJLHCAGMAQ4pRseq+Q75hPslVN+ZJDilZjq+2rnb/8NozmEa/8OsHmg/ci5njwxt+pmO457cdft91WZoa6yHuilR272DV9asUykWXYBcyAt7h52Cd0ULhZzG4yMrUS6P5kF9AqkQEjiXgRSy8YGbKBItNlCWgPZMxaC+nEmI2WTHpHcu0/JQB+1gsGcv4I5takzDBXAqRnMqIRcammevxDjcpWIGbncV8yG3Y7oRev84pvM235h2eCisS8GBR1AcukcU5iBgs73AtEiCWP2XgfPdKJmAyzzdFupoDG52fsaVUiiXiDphgE3CewXRqrGfesMgkqQIPzM+B2UCPSU3/zGWAmDmIjI4dM5Z5mQAzmUeJXDSHRPDhAw/a5lJ7mBGHidQyyRI+PFh3ONKVFmI+nArlYN15mjzdt1Ip6b6eWAnR/xLZSlFS4eeVIMHo4ztYtTKfO84drAqvWkk9I+bCl2wp/Zz+XbqfNyxLY+EBmasU6m0GdWabm41Y5sB2U2sWMoaYdpway0TNLXPxnLdSz3iHw71A3fEhT1bdsIzc0XuwSPNGdP8+6v5t0H05/vDhPz586N7+/t9QKeL+v0DP/JwPXww63EtPNIJ//wArvktXtdPTqqxSA2ev8UTuUAq7mku3cRSTzHk2AZaCjXA16MjEEO9XYFMd6/VtWAzOvzLxCldERnvQHv8q0lTJiA51/2eHLD/stMUlPSf1E8+FxQuWe+w7Y9n59VXhr67T8N6JiVcVNtkCrXAJ3EtH9IrXOa3R1cmbJ1GTiHp2BnHleFs0O0zEMT4wliUmzn3WaLXaOFVTCSquu5aZ/AwRolNqEQO9BIfqKQhvqwrNXvIW/LU0uXBMaCbsRHor7IoF4j12XtIOXiJd/opFQqMXZC4gd0lJwQIUm0rlwTLhvZWTzEMr4yg58ibUeU2E4DrleXkonf5wcHjMTi+/ZyOtM6HYBWBwYv/8n3+w08yaV0LfkQ/Ogrin17zDpY4z5+2KD/lE6LtwFlcgLB8iufV6XR2qa/L5ImjkqMnXtMaCS412QcWHg0GLI2ZRBM5NM6VW+fGJm57IO8918lGlXueNhRhBt0CbDkOqQuq6WzGhcVEM9xCzfNfHfUfG7V5TA4v92HamF0ZG0D0eHPF15xFfLKmW5+v5PpJaaaz0aOc3cjbnZFcxUUGu7b3DO+bnwgevLpnJlel67CqsERaYNp6JhZAKH7HlHHSgwODeWxEhYTztuAw0vohrsghrBUYs6SFpYWeUkyKT1p3lebbKo2AF64E6IlAeqVv2aDHlBKO4no3p8/HBwQGvjkqrRvFVY8/99E+EnRjNLiDOgv7egrcycrjNHp/JM8i2TXYoKqRDO/wgf7mL5COmqyiErPYzPx+xCJQKhn+iMB7u/XghVNZihRHDt4ze7tc9QiUboaal3kPOyZmGmH173J1IzPMoU9uiX2VwU2MT4cOjb4+R/FQZsWcDei31rJsaqXPOQ6yMTYZem1qIpJNG1/bTWTJpbhcW434TY9Tu7fAtCL0lQf4cCURGuVTodlOHndHUkVFZokOaQDbEj1yeLlGkRjgwaUCuf2dySthQRvMOi2EqMuVx2UGPvc1zqpkFgXHTz4Vmg0eVfHRYNyvVBGb5FP5x2S+N+VokPgGlanDD34SKZp0L2C4dyVRAXDOaPHoOrVm2H8NfT/CvJ/jXE/zlJ/jCLHkj2X6NIX69UZm2RvzqyWdkF5dZklAdM2VRSDRsmWiEfobDquX0mmFZQLhxODg86vE6j5QA0hOZiNmuVDK825tKPh1PdCDHQAGRyNO2KjFsZPvYLqu3OqQO5kEpsQAoPGBvhv1ZaWXZrrOFMQK/LellJ9SG3jALU7CgI2AEQsyCoupouy5psWQ0F9aP92WfI+bmxvoOm2eJ0F0LIqaUN2SkWOiWfHaYmXrQLJYuVWIFMRMTswAsvoUyeuZkjEzu5+h9JqwHq1bsUmCBcA6W1K4jQrBI7PDmEZtYCeiQwZtD/wjtRoq498SGZnCfKqGDFTe496tURgIrzEqCCSiMXo8wHVidWbPEToQF7M0h8fcHaKH3x2hOrIgfPZMjhooCixjihVQQtx3R4BXUZKCyWE6kkn5FEpYVXSH3fs5HbCIsIzdAQy9RYZ9KE7iaXJ0QeVCYzKfBKrhaKIVxaCFN5opP6fgfvPgNlakygXFgoM313569PUXNQ0O4DpbXVMDnHadw9Io1E6kRf6he+S30Zr1O+Kz/cwozUsxfzk+/z8Hjd/s1UH0YUqCyy3bDqbtH78d5h7sS5rZCsjNcUbbBkUgqrG8BoHN8vN0QRGyjlnCWbnTX3pglLNAbiOCuYtlibQcLMgZT0pGaCiLUJKZlEcafsKjagYJaDlIrimvYHNu3Qcn3ZNXsWDyazaEQzQuKfH8HIXbMwDt02wXgtQhmVIaObDKB0MZD2I2lhcirFUtE6vB4CeZA2GjOLLhM+R67dhmdYnyBGBg9MXHcUXoTdmzYDEXZ71YkmAwdGyZ1pLIYHIsy500CluUNADaX2HNa5WjRe7yvs6vHSByxqzk4YIlYld1DqWufUN/QMeHZpwzsKlweyOl2Q5FcLTJ6KmcZdsSMrnX6v6SThFxa7CUOXw4Gg/U679rtUn6B3fRHAdefYYXXTfBUUmMEgqSqZeq00Jvye4dWIEVuyYDjWCagMfHekbaEZaxaRj3giuQS5GzuP0OTD4+m9x2uM0WHtryyqhJGYud1xfQm0pEFapBW9GkRsWgxeiniYObEjCxZM+pk5cGN0dv48GBweFy58Lj+6vDFt+ttcZu6e2OWLMmiOcv3a9oI6eSQUU/GJJ4ra0EjKiA+WvCZxdJsE72aGRQlcQh3zfXU2N3AyS28qAu26QDvyjqCVm138SOT6RDZzFLY2LFE3OPtXHGT5uTfIbBXLBB6VUIG5i/uKQVm7dZvsN5hlN28l6jRFKK1i/o0Ftbb/nUZzHxNXrXGk1t0fFs9LbRLG4vIs57uV7WW8qfMePGLdbAdou6vW1Mqlug6fzvFiIx2WZLfm2zq4UuMeVrSyu24bmA+Fj08ETqbishnCNHjPC52D4+ODvhGxDPRuGSEVjUvmhqEeO0i4ibfaaO1zjdRECx7lZ+kMz01W67y1mg/V9Vxo6hjUtbYmEVKYnLFq3Z62Qm/uWn2oap93+HtMV4pN16/EiqvbjZejCICCnZCjYOYr29vixbd1h6jKAGGF9dEptFXOhgcHg16hy+26GNN3h0cdA9e8PVtZ5PiK/CCnQXFo09u0f3jH14M2mgedg8OunhFtU3zb0jz7YYFN9k9On75svfy5Q52v+0eDVATdMtddA4K24dcvW7zfeVkrZp8egW36S5fuYBq1E95rZJSklOrS/DY0P+5/OnVjxfLwQ/fz8xoNBq9u7yen17P8K+n+Merk9HZaDQ6eR8fnAM+eH2qTt//dHGsvz8/7vf/2B+N/vr70eL43R8G4nhEn6nvru4us/fJyUkYLMhLm5siZX5uots89Vt54W1LyvFZeUZbJNmBqUdtkSm/msa71u06DmwiXcjrYhNKMoV9gnJIoj6DtZk6P/uaegYarFAMrDWWFZfmwauwTKLHOC5CgScBh3I/ZaaBFu7IZIu3eR9igtIt52F+IuxoIgqOey9lC+3m1B655sapHaGYA7sAG3bplSkrOBq7aWW2upctZkZC5KtNU3jD5qBS9hNEXljB8ik8FsMkQ8mEZ0vqDVqjZ9vFRSPuIWOlnxxvsxQGibAAL70BfWVqMh1/gSec5vav5xSikBhi9AyT2QjjP+TX5jgY8/z25NlrVCESmkDF/YZiOg1Heq4j/PKs/M7471DkhrUPX7awZgwmCStMtPJ0sRxk6rFzBcIB5YqrX1Hg/yUKrHGqdwpWd118151Zk6XdjYFBTBhraxLwcxMXi8Jc0zipBmrh3pdthpsHjrOZw92Twx2ep0p7JogxqyrItLFa0qix3PpNnfXqo00RMI6HlThDSeO+NEk55P3FYR9jorGi/1DNnq775b79h9pk5LpfU0twiaCTzCqcyvU+dcN+X6Sytwg27UlD2zuIsjC8dPPAR6n8AVajDFm4IWX8iP84pH/VFtPgYzgMxYIS04ygB5uJYFiXd+TRwXLf4nTNG+7VQ9VwYoEueoQKp8Lcgb5uipH5eU2OftiyTytpztekxFxwurpQFfLSQ6qdWqaW7wvPIVdG0LmoBkZPq9qtnqN91UlBXDI19W2Ko3lxenlFo9OLbZ0X71zVtmPeirLNRqVsGGBn6HeUfS5h0p0IRIEa8LreB/3fJiOQmEodU1ZupsxkNmwgPPvY7mXoyX9CdYKO6aL+zx9ZMe5dPAoNVZN57EDGRU64EJaSfpdN8hZ4NQiKX1+UV3tFhxwhHSnFkA8feIOYJrXPpJeLgPlTQ8moYM4LHQsbkw6nmWLO2wwLL+h90B90l4VWZQhVeKLyZsc33ywOv/mmhys+1gX7mJN2TLC5BItdd7wxq+jitSTGBmWWYCMMeMjQfJXOgVTMaMg3R/kO+1hCwLCCgAoBPvY+oLvnnKHr9Qa9AaIx2MT9OC0Arjo4hVUik/QVzITq09KumXZdWNwnBFZmRs7WRI/YRK5XJyGTWUFyvDQ2ToS964XySyh/FQqg4pwT/MfC3n0J9bHCxvC+PeiGOqLEARIhcYcpQDwR0d1/1qiHeyjjfBLGHcqfK9AMdrM9VL/A3rieLNOUr/9bkxy4sKzsp0pIGjghFT7kQeOGEwbkPsM7fNj80UItyA6bI/oljt12+Nw4j7QeHhAFrq1ar/Ex3YhgHMBoZmVopN888Fg6mjnNu+p7NPTbi7yj/jv2L/nFRKtCCnjXq1rY5Z08QNf0gcHt2bx/lR8wPEOeuhXXt+tOEcg+zzBf+zdFrYIFAbZ/7lTK+HkG+j/5AdHTBal+59SQJ6w9CVx3rxpZ6XadU30xiiJI/d619Uzy/PqK4zRb+HFLYmL8xIol5h1iGRwojOdQhkXPHrgSepZRK4gHkvjf/wKlxmy7 +api: eJztW3tvGzmS/yoEcQfszurlR2Y32rvDKY5n4ptNxvFjcLeOoVDdJYljNtkh2ZI1hoD9DvsN95MsqthPqSU7zuUwOMz8kUm62cV6/Fgvlh64FzPHhzf8TMdwz287/L7rsjQ11kPcFans3sGq61cplIsuwS5kBLzDz8E6o4XCz2JwkZWpl0bzIb+AVIkIHEvAi1h4wcyUCRabKEtAeyZj0F5OJcRssmLSO5Zp+SkD9rFYMpbxRza1JmGCuRQiOZURi4xNM9fjHW5SsAI3O4v5kNuw3Qm9fp1TeJtvzTs8FVYk4MGiqA9cIotzEDFY3uFaJEAsf8rA+e6VTMBknm+KdDUHNjo/Y0upFEvEHTDBJuA8g+nUWM+8YZFJUgUemJ8Ds4Eek5r+mcsAMXMQGR07ZizzMgFmMo8SuWgOieDDBx60zaX2MCMOE6llkiV8eLDucKQrLcR8OBXKwbrzNHm6b6VS0n09sRKi/yWylaKkws8rQYLRx3ewamU+B84drApUraSeEXPhS7aUfk7/LuHnDcvSWHhA5iqFeptBndnmZiOWObDd1JqFjCGmHafGMlGDZS6e81bqGe9wuBeoOz7kyaoblhEcvQeLNG9E95dR96+D7svxhw///uFD9/YP/4JKEfd/AT3zcz58MehwLz3RCPj+AVZ8l65qp6dVWaUGzl7jidyhFHY1l27jKCaZ82wCLAUb4WrQkYkh3q/ApjrW69uwGJx/ZeIVroiM9qA9/lWkqZIRHer+zw5Zfthpi0t6TuonnguLFyz32HfGsvPrqwKvrtNA78TEq8o32cJb4RK4l47oFa9zWqOrkzdPoibR69kZxBXwtmh2mIhjfGAsS0ycY9Zotdo4VVMJKq5Dy0x+hgi9U2rRB3oJDtVTEN5WFZq95C3gtTS5cExoJuxEeivsigXiPXZe0g4okS5/xSKhEQWZC567pKRgAYpNpfJgmfDeyknmoZVxlBx5E+q8JkKATnleHkrQHw4Oj9np5fdspHUmFLsADE7sH3/7OzvNrHkl9B1hcBbEPb3mHS51nDlvV3zIJ0LfhbO4AmH5EMmt1+vqUF0T5ougkXtNvqY1FlxqtAsqPhwMWoCYRRE4N82UWuXHJ24ikXeeC/JRpV7njYUYnW7hbToMqQqp67BiQuOiGO4hZvmuj2NHxu2oqTmL/b7tTC+MjKB7PDji684jWCyplufr+RhJrTRWerTzGzmbc7KrmKgg1/be4R3zc+EDqktmcmW6HrsKa4QFpo1nYiGkwkdsOQcdKDC491ZESBhPOy4DjS/imizCWoERS3pIWtgZ5aTIpHWwPM9WeRSs3Hqgjh4oj9Qte7SYcoJRXM/G9Pn44OCAV0elVaP4qrHnfvonwk6MZhcQZ0F/b8FbGTncZg9m8gyybZMdigrp0A4c5C93kXzEdBWFkNV+5ucjFoFSwfBPFMbDvR8vhMparDBi+JbR2/26R1fJRqhpqfeQc3KmIWbfHncnEvM8ytS26FcZ3NTYRPjw6NtjJD9VRuzZgF5LPeumRuqc8xArY5MhalMLkXTS6Np+Oksmze3CYtxvYozavR2+BaG3JMifI4HIKJcK3W7qsDOaOjIqS3RIE8iG+JHL0yWK1OgOTBo815+ZnJJvKKN5h8UwFZnyuOygx97mOdXMgsC46edCs8GjSj46rJuVagKzfAr/uOzXxnwtEp+AUjV3w9+EimadC9guHclUuLhmNHn0HFqzbD+Gv53g307wbyf4y0/whVnyRrL9GkP8eqMybY341ZPPyC4usyShOmbKopBo2DLRCP0Mh1XL6TXDsoD8xuHg8KjH6zxSAkhPZCJmu1LJ8G5vKvl0f6IDOQYKiESetlWJYSPbx3ZZvdUhdTAPSokFQIGAvRn2Z6WVZbvOFsYI/Lakl51QG3rDLEzBgo6AkRNiFhRVR9t1SYslo7mwfrwv+xwxNzfWd9g8S4TuWhAxpbwhI8VCt+Szw8zUg2axdKkSK4iZmJgFYPEtlNEzJ2Nkcj9H7zNhPVi1YpcCC4RzsKR2HZEHi8QONI/YxEpAQAY0h/4R2o0Uce+JDc3gPlVCBytucO9XqYwEVpiVBBNQGL0eYTqwOrNmiZ0IC9ibQ+LvD9BC74/RnFgRP3omRwwVBRZ9iBdSQdx2RAMqqMlAZbGcSCX9iiQsK7pC7v2cj9hEWEYwQEMvUWGfShO4mlydEHlQmMynwSq4WiiFcWghTeaKT+n4H7z4VypTZQLjwEAb9N+evT1FzUNDuA6W11TA5x2ncPSKNROp0f9QvfI76M16nfBZ/+cUZqSY/zo//T53Hr/fr4Hqw5AClV22G07dPXo/zjvclTC3lSc7wxVlGxyJpML6Fgd0jo+3G4Lo26glnKUb3bU3ZgkLRAMR3FUsW6ztYEHGYEo6UlNBhJrEtCzC+BMWVTtQUMud1IriGjbH9m1Q8j1ZNTsWj2ZzKETzgiLf30GIHTPwDmG7ALwWwYzK0JFNJhDaeOh2Y2kh8mrFEpE6PF6CORA2mjMLLlO+x65dRqcYX6APjJ6YOO4ovcl3bNgMRdkPKxJMho4NkzpSWQyORZnzJgHL8gYAm0vsOa1yb9F7vK+zq8dIHLGrOThgiViV3UOpa59Q39Ax4dmnDOwqXB7I6XZDkaAWGT2Vsww7YkbXOv1f0klCLi32EocvB4NB2Uga74qMm52WlkSAYIUooqxE/iL1rM00OlME6S2u2psx4dg/zlbwxV+DrcDBQUi79W6AFvGN/ihC2mcg9XUzwCipMUpDUtV7DZG8yWMrtAYb5JZAPo5lAhqLkx2pXVjGqmXUJ69ILkHO5r4VbZtKa0ffw6MlUZ1Sfs1XJdnE3utKiM3oQBaphYGit41enhbjyUYTZk7MCP21gzBZeXBjPKF8eDA4PK6O/bj+6vDFt+tt8Zu6fGOWLMmiOcv3a9oM6eRutp7ASvRF1oJGT4oxxYLPLJazmx6/mXVS4oshormemuEbsWXLx9YF2wTEu7L2olXbNx+RyXTIBsxS2NixRNzjjWZx++jkLxDYKxYIvSrdLOZ87ilFee2mdLDeYZTdvJeetilEa+f5aSyst/F1Gcx8Taha40kuuuStSAterbGIkPV0XNXa8J8y48WvFmA7RN1f66dUYNIIxHZaFhntsiS/a9rUw5cY87Skldtx3YiTGHd4InQ2FZHP0GWP81yie3h0dMA3sgQTjUtGaFXzcq5BiNcub27ynTYiIN/0gmDZq/wknemp2YLKW6P9XFXHjaKQSVljYxYpiQkpr64gytuDm5tm767a9x3euOM1fOP1K6HyinDjxSgiR8FOqNkS8/XtbdHW3NpjFCXA8LKfyDR6cQeDw6NB7/DFFn3sY3QHB92DF3x929mk+Aq8YGdB8YjJLbp/+uOLQRvNw+7BQRev9bZp/hVpvt2w4Ca7R8cvX/ZevtzB7rfdowFqgiYDim5LYfsizahsvq8Er1XgT696N+HylYvORs2Z13cpJT21Wg6PDf2fy59e/XixHPzw/cyMRqPRu8vr+en1DP96in+8OhmdjUajk/fxwTngg9en6vT9TxfH+vvz437/T/3R6L//MFocv/vjQByP6DP13dXdZfY+OTkJwxh5OXhTlBnPLQ6ap34rl75tSTk+K89oiyQ7fOpRW2TKr/Pxfnq79gWbSBfyvNiEMlZhb6UcLKnPrW2WG8++2p+BBisUA2uNZcWgQUAVlpb0GEdsKPAk4FDup8yB0MIdmW3xNu/dTFC65TzMnIQdTUTBce9FdqHdnNojowE46SQUc2AXYMMuvTJlBeefUMoUczYh8tUmULxhc1Ap+wkiL6xg+eQii2GSoWTCsyX1U61pK3IacQ8ZK3FyvM1SGL7CpkWJBsTK1GQ6/gIknOb2r+cUopAYYkSGyWyE8R/yUQMcJnp+S/fsNaoQCU2g4n5DMZ0GkJ4LhF+fld8Z/x2K3LD24csW1ozBJGGFiVaeLpbDXz12rkA4oFxx9ZsX+H/pBdY4CT0Fq7suvuvOrMnS7saQJSaMtTUJ+LmJi0VhFmycVEPIcO/LtsPNA8d51uHuaesOz1OlPVPXmFUVZNpYLWnUWG79ps569dGmCBjHw0qcO6URaZo+HfL+4rCPMdFY0X+o5nXX/XLf/kNtmnTdr6klQCLoJLMKJ5m9T92w3xep7C2CTXvS0PYOoiwMfN088FEqf4DVKEMWbkgZP+I/DulftcU0LBoOQ7Gg9GlG0IPNRDCsy28xEGA5tjhdjYdZhFA1nFigyzGhwqkwd6Cvm2Jkfl6Tox+27NNKmo02KTEXQFcXqvK89JBqp5ZJ7/sCOQRldDoX1ZDtaVW71XO0rzpdiUumpr5NcTQvTi+vaNx8sa3z4p2r2njMW1G23aiUDUP/DHFH2ecSJt2JQC9Qc7yu90H/j8nISUyljikrN1NmMhs2EJ59bEcZIvnfUJ2gYxpu+I+PrBiRLx6FJrTJPHYk4yInXAhLSb/LJvm1QTU8i19flNehxa0CunSkFEM+sOEN+jSpfSa9XASfPzWUjArmvNCxsDHpcJop5rzNsPCC3gf9QXdZaF2GUIUnKm92fPPN4vCbb3q44mNdsI85accEm0uweFOBt4wVXbzKxdigzBJshAEPGZqv0jmQihkNRudevsM+li5gWLmAygN87H1AuOecIfR6g94AvTHYxP04LRxcdXAKq0Qm6SuYCdWnpV0z7bqwuE8eWJkZga3pPWITuV6dhExmBcnx0tg4EfauF8ovofxVKICKc07uPxb27kuojxU2ivftQbf6ESUOkAiJO0wB4omI7v6zRj3c3RnnkzAiUv7Eg+bWm+2h+qX/xpVumaZ8/d/n5I4Ly8p+qoSkIR1S4UMeNG44+YAcM7zDh80fetSC7LD5s4bSj912+Nw4j7QeHtALXFu1XuNjukXCOIDRzMrQSL954LF0NKebd9X3aOh3F3lH/ffsf+VXJq0KKdy7XtXCLu/kAbqmDwxuz+b9q/zo4xny1K24vl13ikD2eYb52r/DahUsCLD9E7FSxs8z0P/Jj66eLkj127CGPGHtSeC6e9XISrfrnOqLURRB6veurWeS59dXHCcAww+CEhPjJ1YsMe8QywCgMNJEGRY9e+BK6FlGrSAeSOJ//wQzjdf5 sidebar_class_name: "put api-method" info_path: docs/rest-api/vectara-rest-api-v-2 custom_edit_url: null @@ -62,7 +62,7 @@ Replaces metadata of a document identified by its unique `document_id` from a sp diff --git a/www/docs/rest-api/search-corpus.api.mdx b/www/docs/rest-api/search-corpus.api.mdx index 28cb121b7..31b3a5db2 100644 --- a/www/docs/rest-api/search-corpus.api.mdx +++ b/www/docs/rest-api/search-corpus.api.mdx @@ -5,7 +5,7 @@ description: "The [**Query APIs**](/docs/rest-api/queries) enable Retrieval Augm sidebar_label: "Simple Single Corpus Query" 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 @@ -73,7 +73,7 @@ Search a single corpus with a straightforward query request, specifying the corp diff --git a/www/docs/rest-api/sidebar.ts b/www/docs/rest-api/sidebar.ts index c4c378fc6..4d8da9445 100644 --- a/www/docs/rest-api/sidebar.ts +++ b/www/docs/rest-api/sidebar.ts @@ -108,6 +108,24 @@ const sidebar: SidebarsConfig = { label: "Get event in agent session", className: "api-method get", }, + { + type: "doc", + id: "rest-api/delete-agent-event", + label: "Delete event", + className: "api-method delete", + }, + { + type: "doc", + id: "rest-api/hide-agent-event", + label: "Hide event", + className: "api-method post", + }, + { + type: "doc", + id: "rest-api/unhide-agent-event", + label: "Unhide event", + className: "api-method post", + }, { type: "doc", id: "rest-api/list-session-artifacts", @@ -122,6 +140,52 @@ const sidebar: SidebarsConfig = { }, ], }, + { + type: "category", + label: "Agent Schedules", + link: { + type: "doc", + id: "rest-api/agent-schedules", + }, + items: [ + { + type: "doc", + id: "rest-api/create-agent-schedule", + label: "Create agent schedule", + className: "api-method post", + }, + { + type: "doc", + id: "rest-api/list-agent-schedules", + label: "List agent schedules", + className: "api-method get", + }, + { + type: "doc", + id: "rest-api/get-agent-schedule", + label: "Get agent schedule", + className: "api-method get", + }, + { + type: "doc", + id: "rest-api/update-agent-schedule", + label: "Update agent schedule", + className: "api-method patch", + }, + { + type: "doc", + id: "rest-api/delete-agent-schedule", + label: "Delete agent schedule", + className: "api-method delete", + }, + { + type: "doc", + id: "rest-api/list-agent-schedule-executions", + label: "List agent schedule executions", + className: "api-method get", + }, + ], + }, { type: "category", label: "Instructions", diff --git a/www/docs/rest-api/test-instruction.api.mdx b/www/docs/rest-api/test-instruction.api.mdx index 4e59c955f..f8758f3a9 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: eJztXW1zGzeS/iuoOVfF1nEoSrazu6zbrVNsJ6vaOFFZSlK3lo8EZ5okVhhgAmAkMSr996tuYF5Ijig52r1LdPCHRJzBOxr9POhBN24Sxxc2GX9MjpV1psqc0MomnwbJdWqrstTGQZ7yUqQXsErdqgRMewLGasUlpsvBZkaUmC8ZJ2dgHeOKibY05qAoJXfAKivUgmGxUkDOMq0cXGPynPFLLiSfSWBOa2mH7GwpLAOVl1oox+CSy4o7sOxHkDoTbsXgujRgLTaX2SpbMm7Z9Pz8GeWfDujvG+tTDAtwPOeOD+cCZH47HTBtfAq+AOV63mOjDLjKKMvcEti8knLFDKgcDORtn3TlysoN2Q8WmMM26xIM9/3W7JJLkWOyuTYFd06oxYBJvRAZtaCuNs2hxJKVYzNY8kuhDZvBXBtgOZRSr3DcOkNqsWxquR0mg6Sp8jhPxokD6zqTmQySkhtegAODE32TCJyoJfAcTDJIFC8gGScf4OcKrEvPRAG6csnWxC6BHZ0csyshJSv4BTDOZjjZMJ9r47BBmS5KCQ5ovIwvjwlFP20JmZjjrFvItMotdt+JggYQ+2CzJRQ8Gd8kXsgSoRwsqIWFUKKoimR8cDtIsFxhIE/Gcy4t3A4e1p/0vZBS2H9dtwoq/zF9a7pScrdsO9KZ9onIeztQKfFzBUygAGFrDNNzat7aKtQMJQPb046hMxV02/eQsufabKxwLDP0zDoj1IJkzjkwyndg8nGU/omnvxylf5+kn/79WTJI4JrjsIb3WWWdLsBMgs6ZCCVQBp1wlKYjz8d50g7VzxWYVTtWl2CsF/ntjoSpylhItGuM2PGcKe3a6R1QUlzw1jUFkMzMUK1Bvj6sJJoPnPfOUBzc3n7yxYB1X+l8hVk3J4u0pnL4iqMizWjl7//DYk9v7pzLsB7qLm7q6Cvhlqw0+lLkHc1MKrGdXD37B2Q4LaVBleMEWKwopN6u802nGKy4ssCulqCCGkWltjUDQa8GAKiHuACzgJwJ5TSbPtvU6lOSyUYl8ywDa4fn6ly980M7xgld6aruIZvenCdZZQwo95Y7OE/G7Dw5HB2+SkcH6cHr8wQhADNkXIXymGhWfVuT7WnNsFPwdHiuesaP57nA7nJ50hlJP7+NNNx0W5iMO81LUAqKkqvVd17uj7IC2BttSlwaCSHg9mx8K6wjocfXOB1CZbLKoe5VdxpqAfDjahG3OnLAjeG46oSDoqeiI6qCuSV3NH5hibDZKmAWVl6CQUxslyUPyKZNC6GEbtfpJWSOG57OuIW0FvDk3/bPtJZfcQu43gW2oBCKO22wSUFE6xGilg+Sgpcl6ids80rxQmSTUPjd3ViVBN9sVgnpUqHYjz5HPZDYzSW/BCZw3gpQzred1lQYWxQX6u6scizXpFwoD2c55LiGkVM01fk+DlkQX9tMla9SigtgU1vNJjSeSHYybUpt+MQCN9kSn1zBrP2FbMaKQkhumrak7XLnJZ8JKVAMayYDjOTljCpseJjTDEdaX4LZpGxUh545Hro8xacTkU9ZrcFoFDOt5mJR+fn1q4NL+f2cmMn6BODUslbVMLvkJoiRlO1o2fs1lMi3p/eHfmCjcncD2n87LSfDvTUQw0cHhy/h1esv/5DCH/80Sw8O85cpf/X6y/TV4ZdfHrw6+MOr0WjUwTQcWgSzGr0e1kDSP71NvG2K3izpr1XBVWqA5366MFUNf3eWtVbE9trIwXEhIWedF1jmFS6HumCWa/CCsdRXqEA76uC+Sie1lt2uvdkDNIoYR2YBitSGWrCwtkMb2rx2yH5C/LHgBp6tNyUI25J77pipFDE41FRG51UGnU61BRLIHDULoWnYJTcCn9jxuUrZ9JnfZeA8T1nKjvAXw1/dty2a1SnqJ6zgpU9ZY80FrDDZqf/JLmC1/r5bVp1ou7QuULGUvfE/Ea5hn3ovFDs+/Z798cvRQdjBsOcwXAwHHi1fpwej9PDV2cHr8cvR+NXrv58nL9ZQ9zw5JQ3kx61e+kETUK9ZZ2iYVuzZGip3wbNZiN3187adirNaXG4HCSgc/J5F/9MS3BLaVYTTHmqUKxaybWxIsa2VhY68zrSWwD3NnPNKOo/dt4MkM4CqfMJ72BDuRKzjRek5UNOEK25ZyNend/y4J+MEpyXFacEeVmX+qyqS3DoWMj+8NqHKyk12bRP8Ow+GOcyFAr9thusSMkfUrawc8wyjMnCXLnsARbpd2wV+TGhTRCp0XWm1YrDRgU/rMkQMAncUuzHEv93uu0Bg0pXMGZdXfGVRv003yMW0b6gb2dmiIl1g2Xy32Xsq9dPtpw5POuEoz2TUwf51+/vWlxYYDL29HSRFVvaoeMXevzlhz9/rHCSrqfyJ0U5nWr7ocjytFGSe1sE1giSXlNeCwb0SzTW+UEg25pXK/MQKtxpG+I/wH+E/wn+E/wj/Twf+i6y8B/IRcrsAgr9vB4lHzMnnAlZA2vtwy5ot3LJmYvgiGAo2VtcpFeoxiiulg11ju2nfl36q2FKgdYfPdOV8u8LXjMrsN9axe9EagWqilVxNsLjt2o7njCxlGzCDJpVC52K+YsKhyeJSGK3QHNOzdD3WeHPXJTy4ooKvGsNVJ39YUba/IpFDUWq02d5Xj4GS9ADLuJTefsQsakZuFtbbi5Rm7dLAjxSQ3dE/XYKaXGkj83u7R5pQOTAcWRxV2/A4lDayC/VUcrvbklnL0vusRHE66ojQ41hsKBB7uW736mMqIQWzHSgiPeUfkKIyulosG7tencNpNhf0GVDCJVdo/vX6MXzyiMQ1EtdIXCNxjcQ1EtcnQlw3PiPt5rAb2NuFlY1Xj4P7N74wvyRr4G8/b/Vp+SuY7QR88HxHgf/EGRE+InxE+IjwEeEjwj9xhO8cC9mN7h2A7cJJ5/HjUP0nmG0j+gJ6pMbD+QJcB8vn4AjKw2k4Nje6YD98+NaGQ8Z/PTs7qQ9r2gjlEcojlEcoj1AeofyJQfkC3ANwHGF1E8Tx2aMR/BtwNXxLXszy3mO0lQWT+vlqj3+sHQ+Ga8gqnEBu6y9azWHh4bn6looOx0xNhSfXGRr0s8rAgFmu8pm+hrz7zcd/xTBgdWUyYFIUgop606zD4Glg2cnKLbViL4cHhz4Xx9VK32Es0IlpKWaGG/wIEs+rRioRqUSkEpFKRCrxlKiEB+97mERA+C6MhEcE/2pR8UVvlYSKC8OLApVdnbLW6L6MhhgMWYvReApkDZ+x8bVXcl9jQaFP3cekpDzePblufnjWbX54hKclyI33cSLjy+jKDBolvPOw2nSUfIjgDJI644QqFP3g9rZ5h0PKOxRL30GuPH/q400EEHt7YczftS/Ge3uohMOL4AI5plnB5++oEnp02pTrTTGLH4XVngwQZUO8EVZL+sqCeff2jqTUV+hEq/NKgt3bG7MpOjSiH1PBHfkz4QLH9e29naQE7y+GP4UD07h9U+/rH4aS19ncCp2/pljneyi0WXleOGYHo9H7r9jzxjcJ1WhV4vgdfPPVi7X+kWOvrtyYvRw1vsx9OV+OmvdUwnfgrrS5CN6EY/ZWWK+9uwODCb8WEphdWQdFk/gD8Dyl1YAEQBtuVgxLsyXPCJS/08z70LKSZxe4utCdj0s/yu2iYc+bOcg0OvxxodwLP+ln6HrWOaUTppz8wfBV5wyYB8TKafxWlnlluV/Lv18ntZ8Y9em0qd/PQai8ypwdsyl6muH8vBUZ/b8+T4Z//6CEVjRlx9jxYOmrpzJIjAcOL27eXfvaU+1e78t1PfnrFde/SGP1qadM53c0sFnsmCSs3g8BbXAdva9sra4YZ9PSaJSo5y+meLLLrJj362u70jvbWrE2hsDG3G9ON7XhpE3NDbCSW+sV0AWsrrTJ8URbVZAvaMHRkpuTY3K3P1YsFEc1OuxlVR0PCZizulvIF8dMCkt82YBdapmP2Vxq7tif2ejF+FwxxthcSEfU+c/s4zV16BqVItFNMWfX7C9t9k8+iw8GwW78L/z3RaYr5b4YMwnqeV3ii0EnAb8EwxfwxZjZqmiTsP31LFhl0yKQFtioW0r9aoLN+2LcJPVJbs9JQkKkCcQK67ireo5pori0yZhPVgszic8u+QSV+ydUBHEU/9eayPpH6+0BY7TZ4ZDcaZNPiuNRtwkXUKhplwfyxs4MOXWtsSdrLqfbzWhV+1rChvHtAu91VVLw60lbLQLFJCDAdq3v+TUGAGCwBiwohCFLp7r+sAGFLyEZvxyNOjzn5agzHy9Ht5RwUhDeTYrZ3S3xSVhlPXqwAhZ8tlo/1trXklGnKQejw1edthyMuo05GI1u201/O+5v1uZnky43+jlowQ4b/jrMTEuA+i1ag24hfZTqwSYvb4mqTV4N08snQuVwXXuWb5ge2q9WlAotQ01GlussKEIKboACV59DbZzGySqFAWjoc5fRkpEDdp21LW6AwkMqe9BsnwfM0c7eO4GLgi8gfhCLVqxoxYpWrGjFilasp2TF6sHje0xafQjeBZi+94/7aHbalHgcCmzYRB3PZTeHsCW/UmjJocg5XIpf8ENVNUv9ynaaLbnKJdQb4QErKulEah2UzHF7YWnzpnShKytxu3ZaZ8bNmFAUwcUCbvgctJGAalsWJglaBFdswJZuY8igUYf1Ia5AsEdVU+ga4vUGLgVcDQKASPxWR1qLAuM1prSVxNBD8bNbJCyRsETCEglLJCxPirA0IdzuoSkNNVgjJ83TR1KSakaKpCYi3Dgx55mbeHG7J8AfpUEzr89kA1NAzoA8oGPpQKVSn9ftnv6xTpuwnAzMwYDKIKdgmyYaKiLuR9yPuB9xP+L+E8L9DYS9B/038bgLLJvvHscEjkJpb6iwLT6AELGbDWCKlguse+fgdPpFHdRQe4IhfOGQcC1wSVnxC3g6wBV+bg/KOXKByAUiF4hcIHKByAWeIBdApftQJkBI3MsD6M0/hwXgocMtDrAw0BcsdldcLbxCIWT/ovXYDYdDDZQh0Jk/JefXu5R4PEnl3OQ+SeQAkQNEDhA5QOQAkQM8YQ6AWPdQDkBI3MsB6M0/hwN8Y6CJtUlnBx9gBJAajQCUuvNZoDnemGmF7iO8PnLbXDSE5wFQHdN6UlyurIiAHwE/An4E/Aj4EfCfEuC3UHoP2ncwd+3OzPbx43D+GAvqbvRrp4JJgOk71HvnAAClc7Z1R2gx//nJ268H7Cdt8gE70VdgTtDbbMDAZcMX/n5cI3Rlg/KIaB/RPqJ9RPuI9hHtnxLa92DqfTfC9aDwms9zz/tH3gwXSnzTFOgZAZaqFfRCcrwhN96QGzlR5ESRE0VOFDlR5ESfxYl+Tzfkbin3eDduBP4I/BH4I/BH4I/A/1nAH+/GjXfjxrtx/xfuxt0mJvEq3MhTI0+NPDXy1MhTI0+9h6f+bq7C3Vbs8fbbCOoR1COoR1CPoB5B/Xdx+20/iMc7byOARwCPAB4BPAJ4BPDf3J2328o7XnUbGURkEJFBRAYRGURkEL9JBhGvuo1X3carbuNVt/Gq289QXPGq23jVbbzqNl51G6+6/f951e2uADDxUttor4r2qmivivaqaK+K9qp4qW33UttdvCFeZBtJSiQpkaREkhJJSiQpv3OS8lu8yHZn1Np4bW1E+YjyEeUjykeUjyj/MJT/XV1buwv94zW1Efsj9kfsj9gfsT9i/+dh/2/5mtqdnxvitbQR8yPmR8yPmB8xP2L+Z2H+b/la2l2YH2+ijRgfMT5ifMT4iPER439fN9Hu/Hof75yNuB5xPeJ6xPWI6xHXn9qdsxvD49VyaObHrg/ux09dL8szsO44+NoLrT74SJh4hS210pZaWT+Sh6NRvxCJNjtbchxJFF+wFCGroggF6LK4ogWKwtNobAO2ks4rcfSe9sIdvipgZbwsJV5jK7Tax4AP+Owuef4QGktGCS4UIspabZ123s896lyTTq77u9/gUlMpfQ9xPlJAuBbX20x6nakbufkvXZFnPGdLkOW8kiF8A5jm44pXxLggj7ICGEY5H7IznfPVF5bAAMf1cHT4Kh0dpAevhwzL9LcD05w0HvUao2vQaGFYjDH7CWbsNHhjvCu4kOyUerMluL1j9GmHbPkJCsL1qleewLo6HCtpvoJLVG6Pkox36DXeiJhXr7ypJYhL40beDWVAZi0MRYI81uvK1hv9fiGaC5D5nf7tKDzBoT0csCHRcbr1n6ECsGVBkqnFD9e7fX7vBVj04O6+3faWDxMY0m5TviAIYF3v1VLYs+O3NVetB7p7DhipJHkrgSwbN+dasnOYVQtPSa8oVp/RatFDPDtq7CueB9VFk92I2Mvtxp2AKQRxK1vfmc1xBZDK8kqDYgqsKYtfKXlHjYMTBBkMOsoHEgwBDbxLFGrHMOAPCCXQmcXtsa/fBs47w15dLVce2qlGnRF/2h0z4R4p6OqrYxWud/IXh/lahr9BQVkXj1fbTeooLJKNua7Uv0z5eAz0MSibS8fgWvQv8vt3x2E8MwrOgsPXtH5rz/Y09cB32n2NXV6b5sPDPqAJSI2OkiKEQZqHvXFFWrjGgz6AjzrhSeqEW+TgczAqtflFujC6KlNv5kk6UmCTtWQFuKXO63SIIjQMDpT11xt+vEkuYJWMk+u0ifWU8lKkF7BKQwSSSy4rJOcITxZxPPmEm5s6X1+bmkzrbevN1m1jm4/aijsH/xpDSmlqfcndMhkn+5eH+92y9286vyYiv90PvQ0XM1NXKyOTcbJ0rrTj/X1eimHY1AyFpsrqCGOU+qgUf4PVUYX1faQuf48/DulXJ/EpriYv23WCduvH6cGG8Suk67DdH5uLsOdSX1FZmRS4lzJA5jouvZDrC1A/rHejcstOP/Z9lfuUEvuf6ZIa52Wo26lWu9JD2tViwcBzCpQTxOa6FgiSTNQhgc98pfPVu3pN3SRh90B/tjaXZJy0TJ9UU1FytfrOl93sD8jYiCTfj3WCdxd1V3W9lj68Oz1jRyfH7HJ7VOt3tt7RoPHV8OYKSQoBFEIkoRjRDuUKZumMU4yvVlNiuGTck+CqposS0T6s50xXxlfAHZv2yxEK5n/ggIHKKULZX6YM9Qa2uX7kQ4vpykkKLB04dG3IttWsjpDjVY2wlPtD7ZVWB9DxZiUDqDfFQnnNM6PboCpBl3ViAr+JQr/8+qgbjhPu2xrbCRkdU2pmmLk6TCJu1Pb2Lg/39oZk4et2bBqKRp//pQCD2zKRcdkN9eOP32GIRJOh8Z0st6tyCTTEjH1N16WTCA3YdD9crrU/xj8qO7mA1X4TfGjq3e1rW8U4ORyOhmT/BlPY7+d4h6vIoLM06lnJdLEvYcHlPiVN9Ty1PvE+6UupFyRs6/oh15kddosQxaIuEm8bzQtuLoYlQQuX7oxkvxbUhPR1zs3FY0qfSLFYul110BYxo0UHuCFOxskcIJ/x7OI/O6XT0kUNWnBiAGFp0562u0XestI3TMKn5arfqODnGSFEitaQsGH3pPU9ZGThqoWIAWp82sU2tm64Lg2EbZCtsiVG35uenz9rYmOenz+72TRMD2lDejulMA2UYt0I3r73Hp5Iem2IkoYWoMYs0vTJx3oIcQWxzchovPagz0602YZgxsbt2YBJvRAZtaCuNs0B48/hkgoXBBs2g7mmVVtKvcJx6wIZlh3Cx7fMAAdzv5RcUMA8EqSbgIQfE9KEGxxgvI6GtEisQwvIEmF0/DG5uUGt94ORt7f4+OcKjIe9PET3TMZzLi3skogltPaAWmEEcrQmJZo2sEN2PKddRMgD+SBE0cW3TQFXQsqeTzrrQ+BZRGvWrGkDoXj9reQzu/O8Dj75gjRhtfW1bEfX7mpnDbBq1W1k3f6NSbpF4Avo+/kzgRBBY1fwC0S+GQ4qzOfIPJ0OUVccrFHXgDzNhDRhYdGWjt9rdHV333wfAhdIz3xw2bW5GPyf9KEQUopHdyR9T8Vs9senfeNbnZ6tMeTtvVab4yjLoHQ703bJ7sn3p2fJIJnpfEX7Jwqimhh+lQzovyRE4bQ62YTxWTcibOLLxH//AyOeou0= +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","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"}}}}} + 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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},"get_document_text":{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}],"title":"Tool"},"default":[],"example":[]}},"title":"TestInstructionRequest"}}}}} > diff --git a/www/docs/rest-api/test-lambda-tool-without-creation.api.mdx b/www/docs/rest-api/test-lambda-tool-without-creation.api.mdx index 4cf6121bd..6cb8f7639 100644 --- a/www/docs/rest-api/test-lambda-tool-without-creation.api.mdx +++ b/www/docs/rest-api/test-lambda-tool-without-creation.api.mdx @@ -5,7 +5,7 @@ description: "Test a Lambda tool without creating it first. This endpoint allows sidebar_label: "Test Lambda tool without creation" 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 @@ -63,7 +63,7 @@ The function is executed in the same secure sandbox environment as production to dict:\n score = order_count * 10 + total_revenue * 0.1\n return {'score': round(score, 2)}\n"},"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"},"test_input":{"description":"The input parameters to test the function with. Will be validated against the discovered input schema.","type":"object","additionalProperties":true,"example":{"order_count":10,"total_revenue":500}},"timeout_seconds":{"description":"Maximum execution time in seconds for this test. Overrides execution_configuration if specified.","type":"integer","minimum":1,"maximum":300,"example":10}},"required":["code","test_input"],"title":"TestLambdaToolRequest"}}}}} + body={{"required":true,"content":{"application/json":{"schema":{"description":"Request to test a Lambda tool before creating it. This allows users to validate their code, schemas, and execution before committing to tool creation.\n\nUse this endpoint to:\n- Validate Python code syntax and security constraints\n- Discover input/output schemas from type annotations\n- Test execution with sample input\n- Verify schema compatibility\n","type":"object","properties":{"language":{"description":"The programming language. Currently only 'python' (Python 3.12) is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"code":{"description":"The Python 3.12 code for the function. Must define a `process()` entry point.\nObject parameters must use `TypedDict`; bare `dict` and `Dict[K, V]` parameters are rejected.\nSee the `code` field on `CreateLambdaToolRequest` for full details and examples.\n","type":"string","minLength":1,"maxLength":100000,"example":"def process(order_count: int, total_revenue: float) -> dict:\n score = order_count * 10 + total_revenue * 0.1\n return {'score': round(score, 2)}\n"},"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"},"test_input":{"description":"The input parameters to test the function with. Will be validated against the discovered input schema.","type":"object","additionalProperties":true,"example":{"order_count":10,"total_revenue":500}},"timeout_seconds":{"description":"Maximum execution time in seconds for this test. Overrides execution_configuration if specified.","type":"integer","minimum":1,"maximum":300,"example":10}},"required":["code","test_input"],"title":"TestLambdaToolRequest"}}}}} > diff --git a/www/docs/rest-api/unhide-agent-event.api.mdx b/www/docs/rest-api/unhide-agent-event.api.mdx new file mode 100644 index 000000000..aed02acc2 --- /dev/null +++ b/www/docs/rest-api/unhide-agent-event.api.mdx @@ -0,0 +1,71 @@ +--- +id: unhide-agent-event +title: "Unhide event" +description: "Unhide a hidden event in a session. Clears the hide_reason." +sidebar_label: "Unhide event" +hide_title: true +hide_table_of_contents: true +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 +--- + +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"; + + + + + + + + + + +Unhide a hidden event in a session. Clears the hide_reason. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/update-agent-schedule.api.mdx b/www/docs/rest-api/update-agent-schedule.api.mdx new file mode 100644 index 000000000..be977882f --- /dev/null +++ b/www/docs/rest-api/update-agent-schedule.api.mdx @@ -0,0 +1,74 @@ +--- +id: update-agent-schedule +title: "Update agent schedule" +description: "Update an existing agent schedule. All fields are optional - only provided fields will be updated (PATCH semantics)." +sidebar_label: "Update agent schedule" +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 agent schedule. All fields are optional - only provided fields will be updated (PATCH semantics). + +You can pause/resume a schedule by setting the `enabled` field to `false`/`true`. Updating the schedule configuration (interval or cron) will reschedule future executions but will not affect executions currently in progress. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/docs/rest-api/update-agent-session.api.mdx b/www/docs/rest-api/update-agent-session.api.mdx index b4798326e..439ee22c6 100644 --- a/www/docs/rest-api/update-agent-session.api.mdx +++ b/www/docs/rest-api/update-agent-session.api.mdx @@ -5,7 +5,7 @@ description: "Update the configuration of an existing agent session. This endpoi sidebar_label: "Update agent session" hide_title: true hide_table_of_contents: true -api: eJztWm2PG7cR/isE0Q+Ju3uSL3aACkXRi+vARtLYsM8tmvPhjlrOapnjkmu+SKcK+u/FDHdXu5LOr3FaB/Uni0tyXvjMM8PhbXgQC89nF/xsASawl+C9ssbzy4zf5j42jXUBZC4ald/AOg/rBnD2c3DeGqFxngRfONUEZQ2f8VeNFAFYqIAV1pRqEZ3AT8yWTBgGt8oHZRZMkDyf5J2w80p5BkY2VpnAwIi5Bs/WNrJgWW2lKtesVKClZz4WFROeRBhRQ8YGGmTMOlZDEFIEcfLavDZJIdkPMlXXIJUIoNdMmVJHMAX4VqE5VGKprGPCSDaHwtb4aSmURo1QGWV8cLFAYZ5mBWu1Z6V1pJGDWigjwaHBONCb+D1qZh0wCUEo7ZmY2xh6L6FTcP7IMRnzAOzikQN06ujT5VdVCI2fTSbSFv5kCUUQTpwUtqaBiQMf8NwmBS3OaXHeLv765LXhGbcNpNN5KvmMR/IUAaHFAc94I5yoIYBDlGy4wjOuQEhwPOPofj7jL+BNRGnnqgYbA9/HxHkF7Oz5U7ZSWrNa3AATbA4+MChL6wJ6tbB1o6EFjkv7MWWSBxsoVKlAMg+FNdLjGQdVA7MxnPCM+6KCWvDZhid8cmUCLEjDWhlVx5rP7m8zjvsqB5LPSqE9bLP3syf/u9Ja+c9nVk37f4ptvSmNCNXOEDrzqxtYH9U9GvUmAlMSTEBFesjSMhS+c1hwEYbKjHc76/a6gTULlQi7TTFGdhu2NviAcCd0hQAOt7iY5n8S+b/P8p+v8ss//iGZ9yOYRaj47H7Ga3Hb/Xo4zTjcCvQsn/Ei+mBrcFctW6EUFegTQfkHWPO7/NNGw7s8hFaNoxnPNoXLr+6mnjB+G3ddFZU48Fkb/sl1l8lA8OE7K9do1b69hTUBTMBPomm0KohTJr94tHpzpzvaMGN2/gsUgRiUfErp4c5UsXNLWoducUhkQYFHIels94U9ibUwuQMhichxUs/Zb/H4znFdHml9w35CMds91OxLfUb/EXqYovah1ETXWA8Y+OTI26ORcqhIt34ocZvxLs8dgZ+bq+CEW+9yofDeFoq2W6lQ3eGN3tFCSpUMej5weQJBr+BmhzGFaeX+6TcPHtIpKetUWCPhqgVGoQ8iRM9nHHwhNGqBkcpT9peHBvyzglDB6MwYlQ00f6Dw3FoNwgzd1jI+D0Fd1crEkMCyF/OqhjzYXEkNSNPtxAOgsKclM5bBEkzwzBZFdD2rt3qlJcoz2RZA2egz5Yw5MBGDrUVQhdB6zSRgspC0vwfKINMj64wNDG4b5WBg8y4vlNbVIqShbx8ME8WQCb6doq+7sH91kPvb6OTb7ZZSp2+s8clpp9PpEd/t1y6sEp7NAUzLlBIrtwK8L6PWa9T8I3njbORktNuJgpiCMNwRacaE1naF44U1S3A+FaKHQXYHkWBW+H1weDaoBL685J19Lkp/1EpnL5P0jtv/K7T+BHRDWO2UCs5GvAVV1ga2UnIBgS4fQusEZOV9BP+FcX5RCWNA8xlfwTwB92M4v4jOgQl6zTD0l0A3sQLRWhTQBGZgxWrwXizAH00MEkoRdTiwBH9+SWkCc0F/k/iVc0Xvo728kfF0p5RXIhz3jg+ibtiqgrG1K+FZu/RYMPTKYLrI8RY0ipDT6emDfHo/v//w/P509s10Np3+zLeje90FV7Ir77PR9acD2Ej3y+Oc2ea8B8fSXFf+pZzW3+nQslpotCDZ9pG57bFz1jEHITqDAYoeFL0U3FQo45kyS6GVZLvbOfLMUlmsojxLuzOaQ3LfneyouXIFKP4Y4itg6VvKEA40dXlsh72i6860+G41fn9C2eyhYUu0lgJ48FU4J/A4VYA6jbfn1849QFWHD/CBqOmYZU//1pF352gyEulkDix6wCYPq0A37B+pzcLafMUkzOOCrXD6ChP/ylmzOMT2sNT6Tsi2tqLD7sH2zaFyz8HVKnXkmLQUy1TT7O5JxB0HNcdHF1YLMOCETmfNuqKvr6vScGFl4tvW5+8G1/AgD93ffW2z6ZwquWpNB5IkEnW6EWl8MBCGTPIUa0bM3x7cElyScvI/iJUxQh4cOTI6eut6ikWMlDaaz0ZCIBEXNroCmLTg2wyjjgf7GAdvcWohDG40h532e275vfLBTzZ8jybvznqLzfcSnMm9vMkXzsYmH3X0fNemH02sIVRWdjNTgiLYBzBpOnZw6Q5wd3M/40uh416TH9tn3bpjevWL9vU7unCo525lqy+2m9KE1K0rqnTTqPiMT5anExLgJ5s+t28nnbTJZtDP22J/gaI7mR0d1pxdy1w0qu+YK0tCPRQxlaoXG37WqB9gfRZR7AWZ/wx/nNKvweSXGEEJkN2EHppW0MB+XzHNozrVe8RRCyGsf7Rd0V6FVmDCIwd0ERM6IdvegHk1NiOGamDHJImc0EzqHduGlEuYGhq1CyAaxAg61gm/7cBBiEXeeLFrBT7eVf/t9KM9suMvRMf7V+OrzKf0kQZXCmr97JX0VMUqU9ohZ3TB/OLxy3Pq7C8Pj6/75lnj7FJhJmTBia6koXbEon3yQthShb+CeT4XyBsDGvYnr82/bCRaKZWRmNqRd2x0SYAI7Po4YDEQ/own072Y/eWada8R3ZBnwtErglZI4m1dthRO2YiPaHMP7SMWcZ3ytPoFlODwQYy1nynRC3q18mphEvXN8doToupvXqWlskQwH4SRwknyYRk1S49l0QE9xuWkZnt5Yxic7X3u3r3l6b17JzjjemjYdbu1Z4JVCpxwRYW3oN2+GYseKwZtV+AK4ZNC1bqpgFzM6OGtzf0Zu54U1jXWickM/xM9kgW+mMUaieU6PYy1muGl42R6MkX+Blf7Z+VLcEtVwCAGhw9vGhZCT2hqbsvcp8kTomltFwS2MREdvN2petFtebWyTtbC3Zw0VL8IHc7hNuyAyilRSOFuPmX3K60WVXibDLp2FFRG4OsmSigB5FwUN38d7E4c0VgfamEOSGFcpO6H1WZXqvz/BflLekFuswi2tyaNFop6ZwTCTZu1LzixaMrbPOOz4a18UMjMho9xlxmvrA+4erNB5nzl9HaLw28iOMzRl1g5OIU+pYwtlR/T/Z34+upF2y74mr3fK+hRG7v0adaDGoZnbbWzsxFrh0/V7V3vjx+h4NDZ28tt1mX+D3Pl537YP2pYMuDwbw56Gz/M5b/JK/77G7L7Y4ORPWnuo6R1fj6q1A/vdrsVZ9QOfevcYcH9/Oz80ROe8Xn70ltbiYucWOEzt1glCFlyIxWlNLbhWphFxOvWjKdN8d9/AKNlyNM= +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 @@ Updated metadata immediately influences agent behavior and becomes available to diff --git a/www/docs/rest-api/update-agent.api.mdx b/www/docs/rest-api/update-agent.api.mdx index 4ca46d1d2..438468058 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: eJzsvfl327i1OP6v4Kk5x0kqKbazTMeny0kns/jbOJ1mefP6ojwJIiEJNUmwBGhbk4//9++59wIguGhxliaT8IdOYwoEL4CLuy9vB4Yv9eDk9eDxUmRGD94MB1cjXea5KoyIRzyXo3OxHpl1LmDUz6LQKuMJjIuFjgqZG6mywcng5UqwV3nMjWA4FXv88ykTGZ8nQrO1KplRLFWxXKwZz5i4ktrIbMk4jo1UtpDLsuAw2ZDJLErKGH42SiWMay2XWQrwDdlcrPiFVAVPmMy0KcoI3tFDmFwkLOcFT4URhR4ynsVM5YJm5QlLheExN3w8ySbZKy2YWUmNcBrFxIVKLoSDh+d8LhNppNBMXYiCGZmKIeMxQpWJS4RMM66ZWYk1m4tIpYLxCy4TWPKQFWIhMxi8AWA251rETGWs1KJgCyHiOY/O4Rv/KmlvmitiC1UwlRuZ8oTlolioIuVZJGilJWw+vmaXicPnwhhRMFUseSZ/xZ1gPCqUxkMp7HpFpPRaG5GOJ9lgOPCbdhoPTgY4scBDHQwHFTiDk9dvBxLOfiV4LIrBcJDxVAxOBs/Fv0uhzeilTIUq4a02rsC2X8okYSk/F4yzudCGicVCFQaOI1JpnggDZyRYQfMxmeGfOheRXEgRMy0ilcWaKTogpkozHgwHOlqJlA9O3g4IbwcyM2KJEKYyk2mZDk6OrocDmFcWIh6cLHiixfVwv/WMzmSSSP3xlpXi/O+zNr+UnJtVtRA87em5WHfCXmby36Vg52LN1AJBIuwwipBLwPerPTNFKUJ46hM+DqczK26YjEVmYIEaKABODRPaZWhTyGyJCAYYC1O8Phx9y0e/Ph7973T05ve3aIVPRbY0q8HJ0XCQ8iv318PD4UBccdjcwckgKrVRqSimlpDBV6TBnxCN/ybWg+vrN7QYoc1fVbyGFTTXFqnMANafvB3wPE9khJfi3r80rPDtxqVbdGFq/i8RGbyG/nK2aF+wBTQetqCAGwjEByans2t+BA5sVaY8GxWCx0BzGAyEk9u2u3vu4Hd2B9kL2kHmrn9tH58BZNcNVGojQiwMl4mIWfBDDcMONMvLIldaICULqW/XGiowH2dMZCuggTF7fGrRFe8RT+SvIoarteJZnMB2O6xgFiuYzOC48SPXwwEQ9GmNEemuxaQ8R9iBMdVHV9Qfboxf3JjBUcEtkMgs/DHBv9vT4A7ATxc8KQW8446zY3AX8gCPIob3cx2NygSBc8hdO8mXSiXfhTO3CMTjLljxXkc8Y3MBbCxm87UHd8hiYIF4CInMBLuUZsW4I3NRc6p1jvQllvDVVGbcqALgtpdh/YxIGC4XMDfPARvghNYZT2U0vRCR4QWRRru2U/zyExrw3/T7HkvNHMh1EJGfljIxI5kxO5uVA3AjVvxCMAmoCbKKRQpYtSXwecIN8Gw2Lw2LFcuUfYezWMRAXUTcsSuM6MyYkcgi2FOpDXuJ3xVZnCtJNBp2DmWVEA9RSAE5aG64BWOGmC7jGXP0DleGwlAdu1AY2E6c6Ne3rTvaJla4lM6bM2SXKxmtENeTS77W7KBxpgcI4VJkopBRbesbdxAxSCx4mZjBSQsz3C2XcftmvyJu5ZlUgZ+kj2xnU/9nVDId360RJnh0dHxfPHj46JuR+MO389HRcXx/xB88fDR6cPzo0dGDo28eHB4eBhQVDvQ0bpDTqREpoE0HA/hvkahImjVzQ6o9IlZjV0/bFLyrx+yXlciYFmZIp+5nkJoVIosF4AQ3rCgzFD2MYnmh4jISFdEKJkR5+rFHOg/YBS8kyv8nk2zEZreIHAL5m7GR1RLgr/BXJ7xWI7w4m/KcRmqhNXz2XKxh2Av6E0hs/fdwLjeoPVtUFoXIzBNuEKzv6E8G8s49XL3M2OmLv7M/PDo8YihyG3ZbjJfjIZsMjg+PH46ODkfHD14ePTy5f3jy4OH/TgZ3YEO+J2Q4YZPBC8GLaFXHV3vriLIHWwMaQQjTZBDeQo9+IdY8qY7ipUOX6+GAF8sSCNEUiEIh4w4c+ntuVaMVL+JIxXDs9i3SNghkniS6YmNOTiVuliiSipwUSxqbn8Qo1J9kbLWUirNV01wC8bQDYSTSTPre06dnJE4DrZwL5rhrtOLZkrAx1PgyVbDzTF0yswJhAj+kSeAKCTHeaTijlys/CLgYT7SCr7ibU4iFKEQWCU2ye2bElXEvlBou2a1CLIizxcoAlLQZIHYzvc4Mv0LkfwHPI3oVMGIhr0Q8xT8nAxDxj47vw7gnzS+fsNnbyQC+MhnAi03cHi+kSOIpXqPB9QwW9byCmhegZWjQbGsXelGo1K0H4WtNexfuXxQJrd1vgV4Jn9TwWv3Ohi/x+t11r1TXYpIxXNq/S1GsYW21ZY5bANlx17TG0wXaFC45sT7LRQvBE4tdMzfbDAQT/NP+PbTaCFkl4NiFjnhOyLSQhTbsFsgx9nxv7S9jkVzlmcBbq4dMEUMHJwOEbDAcJDKVZnBydHh9XVNCX3vuZL+IxhjLvH7mBRponKmmLca8uR4O0ihvyz9nUb6X0HP23c9dQl5DjLN3aE/l5SPJB2mUk0xggeoGvSEOwOb0IkAvAvQiQC8C9CJALwJ8mSJApIpcFXyqkeK0pYHv6HciSPvYfeyETHeQsM9XQqhvQ01Y2LmghtzQ2NGePffs+TNizytC6FI7fAZezXQZrax3kiHddCjlnEyAWKJikMhhnRUX/JSCx+hLSBJ1iZ5Yy4qNYgsYi5ccOGzFfHffdYSk25dhgccRjDYxuNV2GdpanQU5TeG663OZLcfsdIHyQV6oCxnD6tyCAFhyBMzXnWSpco2EzpDDmjvkccpOaStEDDswh1dYLki6uVTF+V8GQMi7mQI6FyuEaBHgnyuX6vWQ9qjuiOhQVbQoRn4M3GktDNCUTUiBDA9kAdglcQW+lti5KZ4+PRs7R4/uknxgSkdpUJYoyR4OIoQTDawoMW76iGqr/QesrclvtqNMm43htDSfnTzYwBb7gsEj73OwuxH41HFjnEdI8KUogpXvxmjLG7px2jEao+yHhyQnus/Bvm75JC8KDp5aaUSqWzvwN7EWcbUN5c61n8MLnkgQdoSr1y1YEEAaCU5jlN4deZ4uZGJEsd8O0fubN6nU1R6N2XfkUBLSrESBnOkx0yQ902UFip2uR/QmkN8Re5yx7wF6L/la72tDqGzJlG6Oa2AISCF5ayapA7oCFwYlfpTvkR1b4RqvAzry61dikoFuA88NLwwQVcHhRpZFBuEsC1UQZc0LBXIzxYwsZaZtMEYm/r7AWIs6wQIXv0OIOsAdMpw/U9hnbgXknZCzjYCPQcfwhEBFUVmAEgfbh9ExqdCaL3HrdDlPpTEVubFeWvqU3wGerSdZ9zagGuiBdbCnXGbosNIGVYBVocrlSpUEMgAJ+DrJpEaaV4iRgFfRyRaXheNpzgFdCJ2rTAvQxHQ51+DD9z5X0H5D7VGDGGD3oeMCbJTYW3eW/vs3DMjoHnFmMfUHvG6gD9SvF+DibvH5Meimo7puao/D+pmzLgQY1yxaHYpngnwfmPGUo9Y3aOozCN+brazxGtUWUpRimYpMdzvfkVrgMFYNAyGnmptdCrlcmU7CvckxbsdlZTrHMBqSIMF9qErwlw8D17mNE6p4OYLzpAIabLB1Ctm9DvoNziDjRaEuHV0uhC4To/ckgrGKxrHIeWFAIGR/YgciW8pMCBhw8H6UMTzcnj729LGnj5+UPibiSkY8mUK4X5GrZINi8JO6ZGmJqizRQmZfZDpSBRg5VZrzosI2kc4FRbXigIBwtgniIlHchIGGh6g1VQGVWqQ8MzLqIN6nGUW44DUAmmbtqVrGELJiFT++BKw1LhgFJUMg8PZndMc4TOwMDcsAlNfeeGPVKYxbpLcoctlHiPhxjlQQbr3wC3EaWXtF/yCQnMXax9AEAU4A/x6qZhMnApEZnXoyOyUVAPZYLRZamDY4z/C4gApZHoIi9bnMEbKcLyGkqh4zVoWO+iOWmbl/3Dhiv12H195y2fz6GaEBy7qgKATSgpt9+Cj48NHhtY3GvDJt1bhJXuqQ1dRNZs0HeSG0i9HyhDtWERpWQD30Ubm0DFCvx+yf1lqssmSNNuVoxQsewR2fEpm+xxcUbs1gelSiar8MMfYLPRkKHBzWiE0os8aH7sOIdcMN8zDDzwWwXRGJ2PK0htrVBK1bDqnOq3qhMhbolbrMHAcCoFJuohWaLsO9Ag4kNTCzUotFmSDmrdAHIzyvtBGPnZt8iUTA/TRmp8tMAY2SCzZrbsAMmSYch4sDQ1NPxHNTWigXJVjA7Hs2SFFlBhkigkRj42DNQxTFlGGJslF2qeAYvx9xH9nITFFmFKZ3qYo4POZ9kBtwuDoVPMd3PxSLBp/6TBCM3/SRNPFr15H48Z/8muxFTyviXSfqXmw5ru3BXli5cQv+00j5AXcARPip4cvutRu+pLVeFjzXHfCFmkC1SrUwIiObOnloQEmCGGhUGH56efb03v+cPcXZAXEhhUihbBQL5LOi8B5KYDcSta8gFQFTM8AbBDJ+DJJVIcIvreRylYBCDCchM0r5eXVK+UKt94IzsLgsIAHF+ezrC7a6x9bw/D+K9M9wxUQWv//Wiiz+DW9sfUm1ffXKJF6evfb1Hm7sdc3T3KZjxx0X+7iG6nRCwQG5qUNvBUJXN9qjvFrw7JxoxXYB7DmO9PKgvd7O2PvczkORChcgUufqUhREHTC2XkFQfaEuaCdVETsqVLeY/HXN7FUPPkCcqHQMRGlTTe+W0E7ccKkikJiS8GzMXmJ4PQ6ht9A9pYWxMqKdaAY7MYNZZpNBpjIxGczeLanBpzCF+9y1r0hvKZjBKx6NVezvg69/AM09xjnepWazFlSzob9HTobFFAP3+5R8yeBI9Ls0Dn6GLASpWSxAkgUu7owZppBgjmBkz6JTNABPUccmCtHAHfDzd9ydwJnf2tgAmTvDAgGg0ycOb6tVwPO0TIyE7KKSB/iE4KQc0kKDrD6whWXn0+Nvjr85fvjN0bdj9oTkm3Dnzs6eV/OcPmFAQChsyjplhx6Za0Ntrhlm0bC7d5/4Db179wQTR5pHYqfbHtcI8N7+y385kP9wZzKJf18jRbUV4Ua7D1MwTLi5mxPZwpSoaoN3bQ++BRs0Zqd7b85WwkpXanoWnOr04mgQqr0teaO+mhe1yLh0m1Y8F1YxBp++F5w8eXGGPuu4r+4Pur2BVYG5VRqXCUxfXCjnsNdG5BDXceRoLMTGgN8+L40Hg0eRKmymNZPwIFmqQpoVZAIfj9kL9AsGxxL7V33+slkJWaBVk0xM40l2H74JS9M2HCVnz9yLQ8sVnzm/fj0WMCY/vdQMtxwjV54pI06I9+PDYAdg9cGeacOXiA6MgyYhM9pzy2KGpOf7jQSyRUlbwJcuM5p9yHIFaZ+SJ8maFSIuI2cMbZ8jNzQnfXi7QQO9HEYtFl1eh61oRFPQ/oIlV+iVSig8pY5QlDn/7gjlkvQIzo+JXux4zB7jR60CaL9YiFRdUKbs2s9DXnMyYM5FYhWGCmX8loxZA/XIDg7zefTTWNrAhoM0MTdANYLoo+GaW3CIbIuyQCn1RkgHRiQ0HB0g+h4gtzig6Q9IOasF/XQsDGMeh/Z0/d7YG9i2AF8PBxbRplZ4DTB6rlQieBYyXYqKbNiDFwwf1wWoSloDiRiP3YnHt7UQbNJtBZwM7uBlgGOEcCCUjbu8DGTddZIT2ILrnjxR2JsXPQ/EA7DfLzpTm+ssv9QYFCyKkYuIXJSZLfeAZlCSXRuC6weTzgjMQCQjKJzPtMLcCioSn5xyMkrEhajqZAxRWWk9tPsstAtlDD1kNqO+8dJ2kcxur93oqYOuW1TAwK/m9m7n6kthbh/cGiPQB3fYXWYfuGVPPZhzpbQ5uPOpGb7ztPYsv2f5PcvvWf7nwPJvzFAhRPUHS59DZpqmHbaMTk6KPkWesDNegPMyYc9FIi64jdKY8wT/WfiHsAmxvBCFhth2mX00RpumGw0f/vvTueR6VmU8dZs0utTV7cwStg8yEGrf6WaV1V7AmDH7SS4B02zEt7QOeZYChfFj9woA8Lz1cHy/55U9r+x5Zc8re1757rzy7Ox5yCJxu3YzSW7xA43QeVKp0ZqYH0ToRa3csAWy0o/FGhH0gDmizZ6OvxAjB55RS4wB22Gqx20ILMhhuK5LjugiDFSECgbUcA5jO/M8WVfJBh5nIBJNRKWRFyJBHmiTLgaRLKIy4cXt+undoSguG5f1sBXCVYG8IYNziyUClh2iAziSurAhT3gk4Fr7e+cwI1aCojptxU3ym8llx9GTPw2NJh8KBwDeGWRiB9TApWPFKuu0wVenjqvtLe6fUqT4UgSKG9PhZyoT1c2D96vo8t752jtfe+dr73z9uljBl8MMeu2y1y6/CO3y63K+9j7X3ufa25F7Tt9z+p7Tf22c/kP5XHtva+9t7blkzyV7LtlzyZ5LNrytvZe197J2okHvXu1t6r179eO5V980i+4Entd2PRwosgnFcFz55E22qrC0JxVsL1TCqrd230NqWtrhi/zFFi6qJoOTs8Or+j+23C6eLxY9h1Fy6atnkP0vWvGwfsEGw21twVOsWmO2uPJogNM5IIddI2eC7qJ44lRGyZ82NAbDJTk7r3VeY+fRMWNYNprNWiDMbF8669uzctq8zOIEXYnVhtoKo46InLBJdhedt7O8UGlufPnsmfekV/WtSZnLsN5ErVitmwTqoUERgDG7y2YI9NSf/0xXRZBFih1Ny0JQJewksQ5PqF9cwSquIpGbagdcaztb4ykWWETYVtqFYSnVpYCCBLgTY/b9hchcobf2EqlMCgk+7V11zmHtCxu4BHOChlb6QojWWvUYH8wAvcKi+PX3xRXUN5AmWY9tAf1tMKD31wHr6rr4FnY1fdql3dNn4Nho5eODzsrY9R6Ulc04VRFQvbks4tHx+BC4lN3BboxHz/rGFVQ1rGfBLLPdTTE3A9TpYU/51RROxpaHn9rL1X1B2/yzIS4QG20VJLD7+e6lux5Wm7mtYD2dcsozvgTtRmELC2gMTJUtwA9QqETo4JCritPuKC7oYkKpQRtWMFdXcHMsNGP2k7oUF1ANC2akxhu+jprpJA4XktNFcyXrxxuoiNSuVgziKbVDfZzzaBXUvXfDx+wHVViTDDYp1cD/sSCNqurAd4ME5R/op9eJypYj/JxzbyBCvrm9MibXJ/fuxSrSY8spx5FK8cE9u3/37A8j+ntEFqs72/0rr6F5xtvJAE7DFvDEc5oMhs5Plxn6AaqWgeLF2UokORS+sDgHfbWxOOR4MrgewoS/g8IhwP9v3/r3cyp8JjN2ywKIBe/osb4Dw1kDBCoV2gLgR3lhZVg302l89Ysq4te37PfGMovF1Zv6ZfBQNT/j4e741q23FvDxUpiX4srcvnM9GTC7PAEFL/cE2vrZoKhMmaa8WHs8JyZ6cOttuC/XBzUBkvE5FCxxmh8WUH0zyQbhNbzqqKOHUoOrDlKPzoKjWPALRYXBEsELCsPB+vdIC5soaoUQP53TEgJhZBOP6rHvS8S+jQzMVcecVuXX2rj5HQnTtukTMkxH4CuvtCpNXgYlsDjDurMMejekuKIsRtmCY0sL0lFOcBKRuded4AWE1ZZTXIGhDPXvzDGCpBTVdwgCUHF8B15SvcgK6VSe2YbVzhzXoPtQeRKePj070ChNFGVEbQ+8RuobVa9ZLCOD1U2BeURQsS5Zd+4Mc1qfiPdj5/7W3T+sFTC7rmqaThMO4XLLDpb+1P5iBfFOWc7V/99WUJWXRuGfZE0oAdKCD4aDX1fw/FwB7ByfFNiKwKzg31kSo5UH/p3jGJ3Dv/+VZ/gkgZElPL+QUAFJZjA+EjBDeQ7PRQJjVmIOX+TwfCXh3bKAkfoS3poLeJJq/Dq0QQoNHhZyp2q6DcFUxIYUHfZYOIPftjSWaOia7nZazemXx8+fnT778aS6BtD3PReFROkgYQuB6gjh2bwQ/BzFPbA3ZlABC3o6o1p1IQtTIl5nGJEpIzAIIBpBOUTbRKKa2lUvi1R2IYoldqtRuUHXXrPthTcdzrF/SP0KUMAH1iTew3KZJOkWvZQUA9uTZ7bMzejB7I7TTzF2CImc/JVUdDAiB2ZiaYhz1UREmnIuVjKLN2oBO2JUcvNgYAmgUediU835ttBOo5s2L2uoJhS4YbFbqLhWaakbWuQA4EjIqpF2E5vuxpSf22ppRHRQxC14FqsUu+okQFsvG+OlHbdQESqg6OEFdAEwtZHRHt7Ka6ALZBNfT3OR8cR0lE6uA4vD5K8CTW52axvGOOzfh2FUbnLfbBDMFlqxBS+g43xUCK4dsceTOAB6ey4SuVIqppCwXLhyjRDEjD3BLkQx50am+y2RygdH4oOs0NfDXkGLlTwXvOhcnMz2WJzhyTlwf6gyjN/KZaT3WRTY3CJpu9a31/PCrBMRMjTiyWWCWiFZPFKORks/y26qoWHWDY0e7CxM2y9zUzNt2LKNeIokIZFtaZaVKXSJx05hDhLbFQy4MNdMo4TAcCBPwCY1eX00mbwZwj+O8R/CRGOaDYzttanQJ+jD76AIPA5cmTQJB9Y/ydmr50/xqNjsj5ytCrH402RQFsB9MN5/MvgzRlbaP/94j/95RhOnvDiP1WUGk/8Qzjl7Hb7x5nYw253ZuNPy4rg5OgGgrwVuFfBUkyboa6FvoaU1mK/7iGBJdgCoEiY4tSmdGukSWA+R9kcVwYJIhXczYPdN6hzpW8BxYwo5L43wSr2vo4k1zaHWKjAVmJ407XQNIYb3FkrdewvdMWR8fe8tDpTx9Qw/6KxVs2CBzqAp0ty49mPbmYf7YEOrp85s/ttYSTM4pQ0lUOGav+9OgqJnp9DC+jgAz5C/QkVUZkUUH90rMzZ7/QYlXzfT0BJ93CFkcM/YXDiSg3pS5S4AUMl7YW2F49r+Nm5wotS5tlfg9bM3t/8YbP+f78wQTAdGVWodrvkWdJiFmzsjc449IzJcui2Z4YmgcHc9s7HNdfiCi3aJdK3wKig5c/14y1PtUl7CnO3lXDq/nUOKgwCvbWSExvanCNRkcDIZvKR/Xe+QW4KloKvEuzQtgPV+cuSfmC54BHLkFFsuaIP8Gd1bbZT8PrOFTkGucWdv32fB+zYEBDez5ljYw68RgP2jl93qgGt+IaYrqY3q6r7wS9VFAgYGqjE0g6W3OuBoupZse7k3rTasVJG1qxnfzVuyXor5xnasv4j5/q1YL8X8N9aGtVp6rQXr1oU02q8Gu9e3Xu1br35erVdbiBw2XyXvPsiSv6Xmq0YxcQVROjvyNWErtWGPT1kMiScqp505Pjx+MPjwjWLCvjC+59BxWMYfm8TYAu0dJaYsnrkBTnHeIiUbfiGTNdD7atH2WZCEFSvstNVheoOW82rB7ADkVDa/ieyUNEFH6HQLW6rQwyRhf3/29J/Qxkn4DCAt3EeCPq7iikfGf9xfyqU0q3IO4upkcGcIrbxaQ9Bb1RiH1exlEkdgs7ViTvDK3fp4AGMOTbS07zlrjYw1q2e7wWmjg1st+Cs4htfBMoBX1AEeDAd3x9rw6Bwu9yJRl/j0DdbLf89DsxO43rf1Y9u19zrn6dadn/N4XBu0c9uD0R9/093HwPyaFSJBBjbSqiwiYbd43ybINbEnlPu65LB3k7iW1CWrJW79KDpe6pa1lsLcUNBCxrAQtvmJ9ekQtrx6/vQGIaAfQQ5bCtMSwrpX2CGBwW724lcvfn1+4leFwjxJPgtJqyySzRYzDMcz0apGHMZ9I9O+kenX0cg0FWalOqJrf3r58mdGP+4hm//4/cvBcPDz31/g/72C/z75/un3L78fDAc/ff/4CUoBK8HjzkgG/Jb9FQPFK1E8SKjvvJT7tpN2l7e/vf3t/YJu71zFHTaE53RhGPyKvBku5r2fX710V0n3DK6/Il/JFaH4sGkhYlmIqCsSPPBd0GCGDMm/0XlZvAejvy39bflybguosao0Uy0ilcUdl8XxFjuQzKU4tvOaOItxf036a/IFXRNQVqZgteu4Ic+8KwUHWNs0ImVdt3GH2F+c/uJ8LRcHsrpudHEgC6G/Nv21+bqvjdbJ9EIUcrE99IqGsBcvnrIIJllgkategelvyldzUyB7xLpypvO16eIzLubFH5WGXAAJ1QQMFpFCRDJFmUW+RkXPaPrr8+VfnxuEi9iwjQ8fK5LwdB7zdqjIU3y+T6gIzfAukSIUaAc42V3C+pPFi9CSauEiG1fZiBax+wmyt1JJZ1ePV5n8NyBfDHWJFlIUFG+Ac29vivF/RiXT8d0afsKjo+P74sHDR9+MxB++nY+OjuP7I/7g4aPRg+NHj44eHH3z4PDwsBGacBr3AS19QMtnEtCC+W0uOiXnWld80947X3f900S4dJNpai7gr+Jb2+GHcqoHJwMEipILa5TaEobhu9JsysaHg51iUhKcU4uAv/CDTu2YfYh5NTVzU78LZffvysyeYzPv/pPR9o7NqxH6/XagQfW7TqQnrz15/TzIq4sX3IzaYd5GhBL49FysP5vkjQqk7shCgNWKU2v3UcMLiI2kV3ELfPasWzyWWgA1yaZFxEO/HoCVig7ZugbNRLKOlJB0PTrP1GUi4qUYQYI7kgDX8mNTf7eyUxqsZfsGOhgtZwi1Dhei4PNkzVZlysFMy2O8tKdPukuZeDB5lkEqZCEgOH7qElYsGnYm6MJPrtaNB4oSY3ErRWcvt+qL8A32GD/Lvn/xI3uOn24QyK4en/NCikVIoJivlrFuAWTNENtB+U6leSFWItNQqE1kF7JQGVUlgXLUkYT/h7yDJdy1zFb9d+A6mrOhUoajSOdiPSIFM+fS1gTWOLmxCaMh4IiFVFPBkfElpDCnUMDElgH3FSA4mBkhvaKj0c1NpZVYRVOXFhHixGA4WAteQILR8QMsmsQLA5DClpbacJnZwj+ohLp1bEiuqmiOPyl0MEAyNa5tUSYJW0lRAGmFRJOOk7zp0uCydSF6iBoWrIAEb8LTvRX1bpnrwyvtupxPkSB1iH3lfMOLHcJeOR8R23onEe9CUZleYA1Y4COuZvx0urvfm7pUt2WpTVnOb24vwfUS3H9MgvOXFc6to7ZWHYO96FJV5x1SDR0nwTgy4wSYuhC2+3paY/aGdi9YLxS0dK7Pw/pw3fC6ouYMypFlKlWlTtbbGfVzcSHFpZV5YgEVo7Mllb7IgWHY0Fo2mfzu6Pg+ldESUVlgOx6tS0FVFAjVpsbIaSqzstNB8dLeKwn1m6EcCA30nonAQiyuclmIkLh117d69KCRtOsX9uhwf24SkPJGcQhHohrFGbqKBBejKMQsW795M169pLrQFQJiOiUUrIXVK91waexGJAK0U3Z/7KRfEOCpArYTg7EgzUahuzKJvj4cfctHvz4e/e909Ob3t1r1jFN+5f6q5XNW3ZhtmmhwkZ1PIsQgKDi1pSikQ5C5WPELqQpb181tLTBL8m4RAYaCcbY6eyLiE7ycsYgkVEW5rBzMUPLKUN0s218mFZUsaL8J8+XQUAnqkpgT9pgYYSFcgWr02zgAb9OcWHsLe40EsN2BqUS+Elgays9koSAfl5sHLgP4xaq3t9Zcqi8YTtBDDKPcN+vFC1svBen3zZ+al8YyGShkWDvGjRK816A9W+oW26tDdbyNfcfJdwQtCqCAYUP+fw85lrKLByeDHOVCK5dAXI8+d7I7kMdpgeSybWusLt+b9h7V5cMNRWA20ZqbS61Od5mCrtqWXB/bn58LHu8hvWaVLgTzvYsIC++FSpVu+4QvVXGucx6JTybP1natJtPuWn9Drq1vfy/b9rLtZyPbtjH548u3/jpsMsydPnEmJg8eFmnhO6xdvDBTPo+Oju9TAbJIxdZB0/6G+9UduNuQbbYsy1ELfgnFf7kWjx7Uq7TAL+glAkiAUmxhdjgIAECKYsvS3D4aWbvenZ2Sbr1K89HhIa453vVdkcWbvzqk+FMw0d0UgOPD/eXrJsOpy9jopXt/8boDtXerXvxqCkFSuyKqFlDJth5NhQU4SD/iMUXvKKzWl2EF3KXQY/YkKHB4/PDR3/56c3XG1yA6Onzwh4ffPAqbbRw/Oj568MDGhm2IPW7XQbIxyMCVAcwRFYjFVTQgPjy8aXnhGryHhzVgCV+6UGIP6eg9ZKBlIfLNMtCPhchvJgPBfO8iA1EVH3KaUK16P+UWM+x/VvKBtXVLPhtWvUnywU3vJZ9e8vn8JB+PyZ+t5EOU4iayz9ayv642bdUnE/bktmvHQBtSiKW42tEMSBSFKv4fdS9DSj0cwLtTRXdxixCCn4hUmmIruLwZc7i7VlhQHWwkB8PBKLtBEbAmrf/wbiKZ8qXYoG2fwm97q9o40zvr2YkiPRtn0VVMEHVp0DRJEHz7SbhNtVk1VrN15Q0+E+x3z2R6JvPZMJkGDn9WHIZgC/kMGDJ3hEEDm3nNR78ejr51Vv86D8pXyqgpv784ppsI3qo2JE/wOUuggCvdeQSmysXYoydQoi6xK89y1dl4JwALHuzNHGrk+cNzBh+VZEmw1W7rLOKJHfSdH7NPUEEYj2NfexeeQW8TBXQzVnZaQBNeSFW65hafLt6gYytrDGS//Whwkq7z6VlKz1I+G5ayCas/K94SchVLT26ivlCni6kzLLXUCGqE0bbcwneCcLdtTMS3nKkF9fuIuppZ14/dFTfp9ZswcLINn9ud7Vvy85MfgneMYhUY+/Kybj7yoZkaTBKkjdY5GRE8m4Own8ZD1LvOtGAT56VMzEhmPqMB0N6msFD/edeB0bZMCqJ3fdPBeQkFsvGi4DucxSKW1Oi0/knkRTpaiZRTn1O8M1Cn+yV+V2Qx9cszisVSR3Dvah2UYRDqt3P0TxvsG0MZKLPqMvr+7bWvdyd6/mfYKh3Z1GLAQcXDZFTb+u18tD5Ln5bX8/mez98sb8SnglNGOkRquWQQ2wvXxv/4tn3wRpDbp1AWkLGo2spScEw1zSV2Z1VVj0ugmfQ9EA9QdABaCc3hbV94igckquo5yZBlqmCQhGGTTGyWCoZMhYQY7zSc0cuVH4Qt2BKNXS3dzfEVBLSVIbBAgH2hxHR9SPWm6KBYGVZPNtfrzPArRP4X8DyiVwEjFvJKxFP8czKA6K6j4/sw7knzyyfYJgu+YntNt/PRRRJjx09ongWLel5BDcF7vohAcKEx0MWuB+FrTXsX7h91pNPNq4Of1PBa/c6GL/H63XWvVNcCukHD0rDvCqyttsxxCyA77prWeLqoNUS0XLQQPLHYNXOzzbCNGvxp/x7aUEONM8CxCx3xnJCJYuJugXRqz/fWh04I9d1hjg4/eG5oU/I5i/bzI5599/NvpalWGtWdgd2gNwSBNMp75t8z/57598y/Z/498/86mD/UUlIF37/DZkQv/Ma6bFqouzpt7lxQQ0yoT9Vz454bf07c2Of/O3yu1W0wrgfwZ1GyYd9+m7SJwa22y9Bk/VwhnAVed33+oWo21JLCDmtpYY9TdkpbQebuOdbMywUJM5AO8pf9Ld8tAlwPMe7qr/wuMcZ1pED+5nogNlL2nj49Cxo1dgg6GIBrKU1R1Tq0DR9bZfJqGXO11f4D1tbkN9tRpt0k2mZyubqACvmg28AW+4LBI9ev0u1G4LvCjbHxZUxA8chg5fsVIVHFhtoPjtH4aLYhiYXuc1jubvMn26FmjVTEennEXWs/hxc8kSDsCFevW7BYn7uv/ALCuiPPU6p4+P5lWhwkPpYQM+fmggkJGY/ImaAEFQrLdFmBYqfrEb0J5HfEHmesXvmTETgNGbIlQro5roEhIIXkrZmkDugKXBgU8FGcR3a8o3ToJNtYO9SX/Oyu9ol8pW8R1Bc9/eKLng6dXhTLFMrwdIboIrXAYawaBkJONTe7FHK56g782dGdjrJOwpyRWJXzBG5TViYoODt4A16O4DypgA7qAVkK2b0O+g3OIONFoS5bjZP3IoKxisZVJR72J3YgsqXMhIABB+9HGcPD7eljTx97+vhJ6WMirqAM1hRy24pcJRsUg5/UJUtLVGWJFjL7ItORKsCmqVIoG+CxTaRzEWMgPg4ICGebIC4SxU2YRHcYJtFhQYWUZ0ZGHcT7NKNQlnopC5VpGUNsilX8+BKw1rioE5QMgcDbn9H7EvYe2RRC5Yw3Vp0awJ7TW/WA3GqcL4OAuPXCL8RpZO0V/YNAcgZqHyzjBW6Cfw9Vs4kTgciM5fRlZpvPwx6rxUKLjsizqnOL5SEoUp/LHCHL+VJmvpL+DfIkw7xISOO1hsrduZsBFIVAWnDjBE3/4SP4sr1zbdW4SV42BC0aW6EEHQRUWc8+s4Tbhy8CQ60a38IyQL0es39a47DKkjWakKMVL3gEd3xKZPoeXwBbxxRKyJOMRP2XIQZ5oeNCgT/D2qwJZdb40H0YsW64YR5m+LkAtisiEVue1lC7mqB1yyHVeVUvVMYCvVKXWVjyKOWG8kJrewUcSGpgZqUWizJBzFspV6iJeGWzMmO4yZdIBILah8tMYUHSBZs1N2CGTBOOwwV8oakn4jnESZLFHnKd3Xu0GluJhSxJdmwcrHmIopgyLFE2nC4VPIOVRhxtYvM1OH6pHwUUYFRFHB7zPsgNOFydCp7jux+KRYNPfSYIxm/6SJr4tetI/PhPfk32oqcV8a4T9ao4Qm0P9sLKjVvwn0bKD7gDWBfD8A0lOQxf2nr0Bc91B3yhJlCtUi2MyMimTh4aUJIYtwrDTy/Pnt77n7OnODsgrgLnAspGsUA+KwrvkAR2g5WkGM/zRFoHO3SFB28QyPgxSFaFCL8EGUgJKMRUlRcmK9irUzTktd8LzsDisshi7V309QVb3WNrmPgfRfrngS398d5bK7L4N7yx9SXV9tUrk3h59trXe7ix1/WqYC06dtxxsY9rqE4nFByQmzr0ViB0jboXIK8WPDsnWrFdAHuOI708aK+3M/Y+t/NQYMIFiNS5uhQFUQcMolcQPV+oC9pJVcSOCtUtJn9dM3vVgw8QJ3JF71KlTTW9W0ItMp6OxJYBPNAQnZ+N2UuMo8ch9Ba6p7QwVka0E81gJ2Ywy2wyyFQmJoMZ+pIlbEgKErjCHbOy2voZTzE0jKqqpTzPbVUgX4gw3OeufUV6S7ELXvForGJ/H3z9A2juMc7xLjWbtaCaDf09cjIs5hK436fkSwZHot+lcfAzpBtIzWIBkixwcWfMMIUEcwQjexadogF4ijo2UUQG7oCfv+PuBM781sYGyLxH+lC1CqzuXSZGJjJbQnXoonYgKV+DAc87XNEWlp1Pj785/ub44TdH347ZE5Jvwp07O3tezXP6hAEBoSgp65QdemSuDaWDxZMas7t3n/gNvXv3BDNEmkdip9sexgjw3v7LfzmQ/3BnMol/XyNFtRXhRrsPU+xLuLkZInunaIFu9eYG79oefAs2aMxO996cHfVl4Y3pWXCq04ujQaj2tuSN+mpe1ALh0m1aMaa9gWIMPn0vOHny4gx91nFf3R90ewOrwppYxpXRpS8ulHPYayNyiOs4cjQWYmPAbw/5aQ4MHkWqiKnlA5PwIFmqQppVOp5kx2P2Av2CwbHE/lWqxUT6tCyoDCiamMaT7D58E5ambThKzp65F4eWKz5zfv166J9NAZSa4ZZj5MozZcQJ8X58GOwArD7YM234EtGBcdAkZEZ7blnMkPR8v5FAtig7C/jSZUazD1muoMSR5EmyZoWIy8gZQ9vnyA3NSR/ebtBAL4dRi0WX12ErGtEUtL9gyRV6pZLYlqsMEcq26H1nhCL/NGcE58dEL3Y8Zo/xo1YBtF8sRKousP5mtvbzkNecDJhzkViFoUIZvyVj1kA9soPDfB79tMKsRQoHaWJugGoE0UfDNbfgENkWZYFS6o2QDoxIaDg6QPQ9QG5xQNMfkHJWC/rpWBiGOA7t6VZZuHQD2xZgqCJDiDa1wmuA0a6nbcB0KQiyYQ9eMHxcF6AqaQ0kYjx2Jx7f1kKwSbcVcDK4Q3XLIlVghQaQjbu8DGTddZJTWP72OysX2JsXPQ/EA7DfLzp7kdRZfqkxBrirayGZQUl2bQiuH0w6IzADkYygcD7TCnMrqEh8csrJiIpeOP/FEJWV1kO7z0K7UMbQQ2YrsDde2i6S2e21Gz110G3ojKNRi6tv73auvhTm9sGtMQJ9cIfdZfaBr6fgwZwrpc3BnU/N8J2ntWf5PcvvWX7P8j8Hln9jhgohqj9Y+hwy0zTtsGV0clL0KfKEnfECnJcJey4SccFtlMacJ7YRl3sImxBLrCYB/T6yj8Zo03Sj4cN/fzqXXM+qBKduk0aXurqdWcL2QQZC7Tsb+rH4vYAxY/aTXAKm2YhvaR3yLAUK48fuFQDgeevh+H7PK3te2fPKnlf2vPLdeeXZ2fOQReJ27WaS3OIHGqHzpFKjNTE/iNCLWrlhC2SlH4s1IugBc0SbPR1/IUYOPKOWGAO2w1SP2xBYkMNwXZcc0UUY1ujNgwE1nMPYzjxP1kF5YYczEIkmotLIC0FNyGzSxSCSRVQmvLhdP707FMVl47IetkK4KpA3JGxusUTAskN0AEdSFzbkCY8EXGt/7xxmxEpQVGeqYieaqEIuO46e/Gn1spbviQMA7wwSrwNq4NKxYpV12uCrU8fV9hb3TylSfCkCxY3p8DOVierm1YvH9c7X3vnaO1975+vXxQq+HGbQa5e9dvlFaJdfl/O197n2Ptfejtxz+p7T95z+a+P0H8rn2ntbe29rzyV7LtlzyZ5L9lyy4W3tvay9l7UTDXr3am9T792rH8+9+qZZdCfwvLbr4UCRTSiG48onb7JVhaU9qT57oRJWvbX7HooM8nw7fJG/2MJF1WRwcnZ4Vf/HltvF88Ua5zBKLn31DLL/RSse1i/YYLitLXiKVWvMFlceDXA6B+Swa+RMCyFIL6IySv60oQMYLsnZea3zOlWxSMaMYdloNmuBgH5jKIRDvj0rp83LLE7QlVhtqK0w6ojICZtkd9F5O8sLlebGl8+eeU96Vd+alLkM603UitW6SaAeGhQBGLO7bIZAT/35z3RVBFmkOSygLARVwk4S6/DUIoSV2oVXO4A3ai6CtoVwl22lXRiWUl0KKEiAOzFm31+IzBV6ay+RyqSQ4NPeVecc1r6wgUswJ2hopS+EaK1Vj/HBDNArrIFff19cQX0DaZL12NbL3wYDen8dsK6ui+9VV9OnXdo9fQaOjVY+PuisjJ3KzFW/Oqr1MlQRUL25LOLR8fgQm8XTDnZjPHrWN66gqmE9C2aZdZbj2hOgTg97yq+mcDK2PPzUXq7uC9rmnw1xgdhoqyCB3c93L931sNrMbQXr6ZRTnmFPdhTk9VobkVJlC/ADFCoROjjkquK0O4oLuphQatCGFczVFdwcC82Y/aQuxQVUw4IZqc+Gr6NmOonDheR00VzJ+vEGKiK1qxWDeArBLxl7nPNoFdS9d8PH7AdVWJMMtn3WwP+xII2q6sB3gwTlH+in14nKliP8nHNvIEK+ub0yJtcn9+7FKtJjyynHkUrxwT27f/fsDyP6e0QWqzvb/SuvoVfG28kATsMW8MRzmgyGzk+XGfoBqpaB4sXZSiQ5FL6wOMe1llgccjwZXA9hwt9B4RDg/7dv/fs5FT6TGbtlAcSCd/RY34HhrAEClQptAfCjvLAyrJvpNL76RRXx61v2e2OZxeLqTf0yeKian/Fwd3zr1lsL+HgpzEtxZW7fuZ4MmF2egIKXewJt/WxQVKZMU16sPZ4TEz249Tbcl+uDmgDJ+BwKljjNDwuovplkg/AaXnXU0UOpwVUHqUdnwVEs+IWiwmCJ4AWF4WD9e6SFTRS1QoifzmkJgTCyiUf12PclYt9GBuaqY06r8mud7Z9BmLY9npBhOgJfeaWpP3JVqYkzrDvLoHdDiivKYpQtOLa0IB3lBCcRmXvdCV5AWG05xRUYylD/zhwjSEpRfYcgABXHt9ol1YuskE7lmW1Y7cxxDboPlSfh6dOzA43SBHRipn6/TiONeM7nMgGOEsvIYHVTYB4RVKxL1p07w5zWJ+L92Lm/dfcPawXMrquaptOEQ7jcsoOlP7W/WEG8U5Zz9f+3FVTlpVH4J1kTSoC04IPh4NcVPD9XADvHJwW2IjAr+HeWxGjlgX/nOEbn8O9/5Rk+SWBkCc8vJFRAkhmMjwTMUJ7Dc5HAmJWYwxc5PF9JeLcsYKS+hLfmAp6kGr8OXY9Cg4eF3KmabkMwFbEhRYc9Fs7gty2NJRq6prudVnP65fHzZ6fPfjyprkEG4rcoJEoHCVsIVEcIz+aF4Oco7oG9MYMKWNC8GdWqC1mYEvE6w4hMGYFBANEIyiHaJhLV1K56GbXnXmK3GpUbdO0121540+Ec+4fUrwAFfGBN4j0sl0mSbtFLSTGwPXlmy9yMHszuOP0UY4eQyMlfSUUHI3JgJpaGOFdNRKQp52Ils3ijFrAjRiU3DwaWABp1LjbVnG8L7TS6afOyhmpCgRsWu4WKa5WWuqFFDgCOhKwaaTex6W5M+bmtlkZEB0XcgmexSrGrTgK09bIxXtpxCxWhAooeXkAXAFMbGe3hrbwGukA28fU0FxlPTEfp5DqwOEz+KtDkZre2YYzDdn0YRuUm970FwWyhFVvwYshiERWCa0fs8SQOgN6ei0SulIopJCwXrlwjBDFjT7ALUcy5kel+S6TywZH4ICv09bBX0GIlzwUvOhcnsz0WZ3hyDtwfqgzjt3IZ6X0WBTa3SNr29O31vDDrRIQMjXhymaBWSBaPlKPR0s+ym2pomHVDowc7C9P2y9zUTBu2bCOeIklIZFuaZWUK7eCxU5iDxHYFAy7MNdMoITAcyBOwSU1eH00mb4bwj2P8hzDRmGYDY3ttKvQJ+vA7KAKPA1cmTcKB9U9y9ur5UzwqNvsjZ6tCLP40GZQFcB+M958M/oyRlfbPP97jf57RxCkvzmN1mcHkP4Rzzl6Hb7y5Hcx2ZzbutLw4bo5OAOhrgVsFPNWkCfpa6FtoaQ3m6z4iWJIdAKqECU5tSqdGugTWQ6T9UUWwIFLh3QzYbJMaRfoWcNyYQs5LI7xS7+toYk1zqLUKTAWmJ007XUOI4b2FUvfeQncMGV/fe4sDZXw9ww86a9UsWKAzaIo0N6792Hbm4T7Y0OqpM5v/NlbSDE5pQwlUuObvu5Og6NkptLA+DsAz5K9QEZVZEcVH98qMzV6/QcnXzTS0RB93CBncMzYXjuSgnlS5CwBU8l5YW+G4tr+NG5woda7tFXj97M3tPwbb/+c7MwTTgVGVWodrvgUdZuHmzsicY8+IDJduS2Z4IijcXc9sbHMdvuCiXSJdK7wKSs5cP97yVLuUlzBnezmXzm/nkOIgwGsbGaGx2ykCNRmcTAYv6V/XO+SWYCnoKvEuTQtgvZ8c+SemCx6BHDnFlgvaIH9G91YbJb/PbKFTkGvc2dv3WfC+DQHBzaw5FvbwawRg/+hltzrgml+I6Upqo7q6L/xSdZGAgYFqDL1f6a0OOJquJdte7k2r6ypVZO1qxvfeHVh/EfP9u69eivlvrPPqpZh3dV3dupBGx9Vqir7bat9t9TPrttpC5LDfKjn0QXz8LfVbNYqJKwjM2ZGiCVupDXt8ymLINVE57czx4fGDwYfvDRO2gvFtho7Dyv3YF8bWZO+oKmXxzA1wuvIWwdjwC5msgcRXi7bPgryrWGFzrQ5rGzSVVwtmByBzsilNZJqkCTqipVvYUkUbJgn7+7On/4TOTcIn/WjhPhK0bhVXPDL+4/5SLqVZlXOQUCeDO0Po3tUagg6qxjgsYC+TOAIzrZVsglfu1scDGHPom6V9m1lrV6wZOts9TRtN22rxXsExvA6WAbyiDvBgOLg71oZH53C5F4m6xKdvsET+ex6ancC1u60f26691zlPt+78nMfj2qCd2x6M/vib7j4GFtesEAkysJFWZREJu8X79j2uiT2hqNclen0IIetH0TG0W8JaCnND8QrZwULYLifWeUM48ur50xvEen4E6WspTEv06l5hh9y1FKYXunqh6zMUuioU5knyWchXZZFsNo1h3J2JVjXiMO47lvYdS7+OjqWpMCvVEUb708uXPzP6cQ+J/MfvXw6Gg5///gL/7xX898n3T79/+f1gOPjp+8dPUMZbCR53hizgt+yvGBFeCeBB5nznpdy3b7S7vP3t7W/vF3R75yrusBw8pwvD4FfkzXAx7/386qW7SrpncP0V+UquCAWCTQsRy0JEXSHfgZOCBjNkSP6NzsviXRX9belvy5dzW0CNVaWZahGpLO64LI632IFkJMWxndfE2Yn7a9Jfky/omoCyMgWrXccNeeYdKDjAWqQRKeu6jTvE/uL0F+druTiQvnWjiwPpBv216a/N131ttE6mF6KQi+0xVjSEvXjxlEUwyQKrWfUKTH9TvpqbAmki1pUzna9NF59xkS7+qDQE/UsoG2CwWhQikinKLPLFKHpG01+fL//63CBIxIZtfPQIkac8ncd8nwiRBEe+S4AIRdUBKnaXqP5kYSK0pFqUyMZVNoJEaBxmNiiVdHbteJXJfwPOxVB3aCFFQWEGOPf2phf/Z1QyHd+toSU8Ojq+Lx48fPTNSPzh2/no6Di+P+IPHj4aPTh+9OjowdE3Dw4PDxsRCadxH8fSx7F8JnEsmL/mglJyrnXFLu2983XVP01gSzd1puYB/iq+tR18KGd6cDJAoCh5sEagLWEYfiBS/QKT7+GcTyEFSWbLfci29m9R5hJVhbsxDffvysyeWDOD/pNR8WqFUwdljaTvtwMN+t4xaU9Ie0L6mRBSFxC4GbXDdIwIRezpuVh/NjkZFUjdoYMAqxWc1u6jhhcQ/Eiv4hb4PFi3eCyaAHqQzXaIh349ACuVD7IVCpr5YR2ZHul6dJ6py0TESzGCVHUkAa55x6ZObWWn3FfL2w2ULFrOEKoWLkTB58marcqUgx2Wx3hpT590FyXxYPIsg6TGQkDM+9TloVg07Ey1hZ9c1RoPFKW44laKzq5s1RfhG+wxfpZ9/+JH9hw/3SCQXd0654UUi5BAMV/3Yt0CyNoZtoPynUrzQqxEpqHkmsguZKEyqi8ChaUjCf8P6QRLuGuZrd/vwHU0Z0PNC0eRzsV6RBpkzqWt7qtxcmNTP0PAEQupOoIj40tIRk6hFIkt6O1rOXCwI0LWREfLmpvKJbGKpi7bIcSJwXCwFryAvKHjB1j+iBcGIIUtLbXhMrMlfFDLdOvYkDNV0Rx/UuhBgLRoXNuiTBK2kqIA0gr5Ix0nedOlwWXrQvQQNSxYAQnehKd7a+LdMtdH18pflPMNgzsEvHI+Ilb1TmLdhaIiu8AOsDxHXM346TRzXc6nZLOqSXJbltqU39wEvdTWS23/OanNX1Y4t47KWHUM9uJKVVt3SBVwnNTiSIsTWuqC1+7raS3UG5q1YLVP0MG5Pg+ru3XD60qSMygmlqlUlTpZb2fOz8WFFJdWzokF1HvOllS4IgcmYeNl2WTyu6Pj+1QES0Rlgc10tC4F1UAgVJsaI6epzMpOr8NLe68kVF+GYh400LsbArOvuMplIULi1l2d6tGDRv6tX9ijw/05SEDKG6UdHIlqlFboKvFbjKIQs2z15c149ZKqOlcIiJmRUG4WVq90w0+xG5EI0E55/bGTeEFop/rVTvTFcjIbBe3K4Pn6cPQtH/36ePS/09Gb399qVSNO+ZX7q5aaWfVSthmfwUV2joYQg6Bc1JaSjg5B5mLFL6QqbFU2t7XALMllRQQYyr3Z2uqJiE/wcsYiklDT5LLyGkPBKkNVr2x3mFRU8p/9JsyXQzskqCpiTthjYoSFcOWl0RnjALxNc2LlLOwUEsB2B6YS+UpgYSc/k4WCHFduHrgM4Oyq3t5aMam+YDhBDzGMct+slx5svRRk0jd/al4ay2SgDGHtGDdK7V5r9mypW1SvDtXxNvYdJ4cQNBiA8oMNmf89ZFdKFB6cDHKUBa1cAsE6+tzJ60AepwWSy7Ylsbp8b9p7VJcPN5Rw2URr3ltSfWzVl+eCx3tIq1ml74B++y4iK7wXKk667di9VMW5znkkPpn86oCbArQ1GXbX+htybG2iXpbtZdnPR5ZtY/LHl2f9ddhkfDt94sxIHjysr8J3WLR4YaZ8Hh0d36dyYZECItP9DferO3C3IdvsVZaDFvwSSvVyLR49qBdYgV+AxUEQCkZwbmFuOAgAQIpiK8rcPhpZ292dnZJtvaby0eEhrjne9V2RxZu/OqQgUjDD3RSA48P95ekmw6nL1Ohze39xugO1d6ta/GoKkU67wqIWUHe2HhKFVTRIH+IxheAorK2XYb3apdBj9iQoR3j88NHf/npz9cWXDzo6fPCHh988CltjHD86PnrwwAZ4bQggbpcwsoHEwJUBzBGVc8VVNCA+PLxpMeAavIeHNWAJX7pQYg9p6IPJPD8WIr+ZzLMsRP4uMg8V3CFHCFWS91NuMa3+ZyUdWFu3pLNh1ZskHRjeSzq9pPMZSjoekz9bSYcoxU1kna1FeV3l2KqLJezJbdcsgTakEEtxtaNVjygKVfw/6i2GlHk4gHeniu7iFqEDPxGpNMVGbXkzYnB3Wa+gkNdIDoaDUXaDel1NWv/RXT+nKV+KvbVpCaPfWZVOFKnSOIuuQnuobYKmSYIg2U/CYBC4th69deUN1lJN0fOVnq98PnylgcOfFVMh2ELWArbJHXHLwFle89Gvh6NvnSG/znbylTJqyu8vjukmggOqDckTfM4SKK9Kdx6BqXIm9mjSk6hLbJOzXHV2wgnAggd784Maef7ozOCJDbD4jggyYOAeEQFhAI197V24A71NtM7NWBldASF4IVXp+kp8umABH5FVrbfGKvbbjwbP6Ji0Zx498/h8mMcmrP6suEjIPyw9uYluQk0mps5K1NIRqAdF2wwL3wni07axC9/tZRjGfPsQuJqN1o/dFejolZcw0rENn9ud7Vvy85MfgneMYhUY+3Ktbj7yodlXuFdVJmfQxmAD3tuK6Q87aos3Cl53FLfuqG0dFGx+c3395rojdwMiBgimih3ZBus7gLXV5P08rtZ0vest+HBdb71B0FAP9w676rXYXm036630XDA2cQRtRD5sdHSkYUijQE3mxVyaAmJqbxKUvbl1HRG/RfCpoG2dB2pno7nRAzI4hK0GG8KLBxw/M3I1yDu79rWSiJpN527qqK81nzscf1PvineERmij8mkOv35Ld8a0WqNspgY4uiGFwQ6ueBZTT7uCZ1qiAMZlUkKQEskD9Zj2TNmpoN0RBWXZiG2LZs/h16aYuP3wqUNOB0F39Q/8F+3IMaMWOXHQ1NpKIwAmBLrIRGI2Nl/CxTRdy9vZJCc4oFqrVlPI/XwUBDfoKNinmy+ggyr2dIQOlATH9s4LhzVXRADf/bAxKbZGwFmnc6BSi8U07QDw1H7ZjmFOjEllkkhb6ssFrVFoDy5gR2+IwxDGRw13CSFu6O47tNu4DVC3kzsANZdCZMyex04oQzDvHzbgvH9YBxT/hiqcFkpglaqjw8VZmRiZJzKyNwqHuZagKoNYtGDDN4PcbgsYq3KeiM1uqdAnFfozr1shPEhbsV4inOkUyGWLL7yAh10ZfCJnGJTk0/htRjUsFuopIkUkdY5671aKnNWZbbN6Sv+PbRVgaFEM35PwvVRm3O6ua5X9DPmBCyFKeZ5bl3hoH+Q1/vZd7Zedq0LACxEJeSF0PQK1Dq71esWSJ2oZdjzmwUSYZNGaRGRLa92s2zUxFgwS0mt9NhV2VKymsF9SGXQyBqUUP+f7SwxpmkyxS44dZJaKZdiv0ohcj9ljVt8rej08Bp7RSQQdlWXXMkotdHCuIOnbmhGOStjKDj4aihg1Cv3UvhS0yKDuBFp5HBLsp7hvVtRJKGmp5vXVH9TlBXy5S2iotPAGptVCP+s/Ifmt9mxzh5PazhLelK6frrtfPgA0lLmsYtU4mkKwJTRXHwaHI6vzI+FkLnzjd3uW9gC3+TGapOG0+m6nKyDozh2KSE52dOTDHpWQyNXn66BqCqTU1YxC70Ye/IThMnzdlhssw+co1sAEoHiS2Hox22vA7NiW+boKUIbTdXq06+ZYy5FktvGTGxRmSo7ZM2Vsg1bf9DD8tNSszMFuEQ/pe5qVmi47TZQJjyp2IAUu+dWsKITYfV1cAceTphaCv+H63ixTsb5p2y2+MtPTdvB2dUnh92aM9hTEpEBYDRCCqlU4c1t3+pnTCNxGOHt1eM62HbQ1hNzgGHd14KqEqCaDl3EYnBusqSpYhPbdD2wgDZY9JJzGxNjqztojrEhqdTu7lf7rbWp/kw69QbLrwsYansz9L3q3KTpoTLDpvv+Va+Rpdg/Jbg2R7hghnNW3x8VVGbd/NdLGFlIk8ftoyZi3O/J5u05p3n2f9kx2+M6ZHGy/LeZ0ifpOd+Agkurd2bk+IaiWoLtglysskSV1/dCU2JGY/DOpgtqrW77iFuTjAtetAsha9hS4gAW33Nx2hoerO90ijNAQOHuRLQGT/I2oyXRbzIEX1kBedxr5p+Hqgofe4mthfAmzBzB3g1sjWc7M7/rklF5Gq7igH0Sr+5C2fWuvpx+9tf4/b/dnt31bYCwW5YweHnVsx3Ft7lkPyJ2P6SqAmVFSgzmdBIm+gpTnekjZM6gCzGh/AbNnwVHPiKzomtdhBo2dQXLkXixsob8VSnC/T0InxJi9VDFHS0y46DGrMAEhPmG/AyMCj1a3cQmwAbSWO7feoqMAZrv+nVzcvmUHjldcPxNX5s6Q/U5kMfxv1p0Q5C+BXwlKJKIwG1aCl7C2io8Cbjf5Cz0vm3OHAtuj77XtMofiKnWom5bvZWr0BOVt3SbtBZ7B0fhwDCW8eGlWIG0P7CaOjOApMuyddrqmMKRX2Mh7LpzhjpU5hPUgl6ytYU8LXJdlIyB1m6Qg5OV/pSIan4McZMWWDyIEwSRBCcte5elVnl7l+XJVnl7T6TWdXtPpNZ1e0+k1nV7T6TWdr0jT6Y7xKoKi/CQ17MvCPUIcBXtlAfZzAVYrxNe/ZyOzEqNFsmY/Oq7a5VymamY17Khcj06cRh8keHbHgxbTrfE8z9sGPyeC5DCpCmkwiRfLFDHDl76230FZVKXLSIm5MmylymI8oCrwNq4x54UWRcvZR2GNP9OPu8PEag7/A81o8uA24GdiJNjEDoyIkaMCWtnRBArIRegqbsYRBK0DyOfp4gpiF6tC1SMLAf0Cqogs4GzUPeDmbsSKhlRxjPRo6wa9AhDhGlyIqhYqwBbxnKocSh8NAcD6DaN2lMm6Bju5/+3uQEJCgcEE+DsEYydYnhRd7eA3LmViRjKrf9gVteZQYRG/jGFr4Za6AAcnuFe0tTvr4Z399LXj7oqlpx0OPPV27bt99e5fIdN0z24cX1o7YmzRU9V3DBCiqs+4FSfwsbb82W4B12Epy//vxd+fYWSeAvRfUgORSh7V0UqkfDzJXrkwDHfkFtOCqWh+XeEbBYaUvOCZEVhoV9IHJxlaT3i8EoXQDu+8IGg/6mNdSi1AgEJjy1qV1n5SXdFJtpAUZmhDQcDrX5G7IEwaooe1KQRPQ/QCkvALWXKqc5c6CIsPgxxECnEqnDWP4PsLqpWFlYMnmVqw4EDxRwpb6X7PVmDSrmmHJLuQOx5QGCYZT1S2DIo54T6RFooakDXu2PYysCwwVZ1QKCWpG+3zCtcGBjNtwEriQzVYBtuXJOsx0U37UezMUnAJeAUxQjzPE1mdpSOedDAo1vv+anaz6Rxkthw2SzpbRJWaAaO7oMwPDHmS2TIBBQpuGShJF7gtBbdiEZr77CoFTyn+I1qV2bnubuXyoalItYh3ISS1Uq5BY5bq8fVw8C+tsikdQhvWFxbnbaRXwfPct9/IcEMQoewF69iQDrHPfqvVmmanpaHLwCCCeC26lhKNA0NvpK2FWnu2TFxZuQgyZz+iOdq7ej3cYMTxNfvw0rRKVYOU1Nybrny/12QEDdL9QgMPUW0ZdWRuEJkBkZsJoLmRQGosI+MuFhFFsH0jtQiC2SyS2V7SsHxxxasXPZoEFwzmhRmC8OVhSDrSUptgQi1YUXqrQpeec8Iww2JGb86xhAwEEELZdUIixHMNEzxOktBw595IoHCeP8GZw7gZw0gweNFF4B4dHoYTGIW1rZH8pfyKPaRESQ3olQmsKghvv8p8lCIYJy5VEesT5s9nyLz1bejS/IfMGn7xR/sPmZ1CSBo+wn/B5M+V8hse8QxMzkApZzxb/30xw7WHhKbSt7IyQVXYR3NvusJw6HhJX9BX0HAqK59GdT8sMcJ9tRycGbXrVjsJZF/Sh7Ag/WtcESYSsSvJqNKZbZSfH+Fjjivju9sskHq2kJqBxcZ1sDW2OxmCKTU7oO8ejNn3YL2B+pxgzCHhBlAFCKFWGW3xEz/N/tp+m65sODOsYoNUGQVmtDlUN9UpiSASQ5M1lKhwDjKZWlgJmM5Mll1HO4hkEZUJL27fCSwnXYtvyKqbwkh9Ep3TY5CUbjqA/etVbEzp2tKXEnszNHQGRy3mYg2MgiKbrfdhuyWEupUFEDZ4K50tMlNYC8NxjXXjLwcf+6DcBWthIeyHa6Kn97iwdCi73AY/1b0eDc6+F0kIy1ZtRL72AJBnNpX2DAWhG2hU3S7rXsH+WhXsXqfudepep+516l6n7nXqXqfudepep+516l6n7nXqXqfeX4l6s2G6WmJy0/u/K/5io67e59r3ufZ9rn2fa9/n2veJJ33iyVeReNLn2vcZKH0GSp+B0meg9BkofQZKn4HyNWag9Ln2vcrTqzxfjcrTazq9ptNrOr2m02s6vabTazq9pvMVaTp9rn2fa9/n2vepAH2ufZ8X0OcF9HkBfV5AnxfQ5wX0eQF9XkCfF9DnBfR5AX1ewG8kL6DPte8V7D7Xvtepe52616l7nbrXqXudutepe52616l7nbrXqXud+vPKtX/zIaJ5quAkiluSv5IkB+pyFAYV3DTWJwjviUXOCwPHBEjng6BFcSExNiQM/znC8B91mYlW9M9wkHBtpoW4kOISdhLC1h6MDo9GRw/3Dw3yudh2dOcNbQX8OER5hRHpeAo2omdwfU3na20K8PXjw8Nu1hboizbID0Dy2oWLd7eqUS2mw58YxL5PspkdO+VmxiC+TxueQg2BRSIijAD10ffRimdgPLkUEKeGWlNMyolV8wBWfE5S/D3Ac3i2SWB4nLHHp67igMskqNQ3o5xijTGsSSJxZBApksWMt0JRN6hI52K9RagGRosgeMFaV4kMWyXqdrD+nlHIzSj+gHYiXvxNrDdrA9vDpDeC/a4B0ghQE8D3DIYOle28LHLgdkgtAjvf9rDoEH9sTJb8lQT0Fc9ishq2w6GBgErh0kXg0vBszWIVlUBaKrLl3rC1FOD2KpVMa9epU6CC8FsX3lofzXgQrFntAClMgIOSbrI7S4ywb02D0FlrS4nc21dfaA++iWRYF/Ubx/1SqaQWHtYRGdcB67YUoWEzYQGJU2AAa0xl7RDvEOy1zngqo6llhO1s8ic04L/p9z2WmjmQo1bEnLci29kcOYONWPELwSTgr8c1jau2SiVEAqI6NAeLtsJsG3wHRPMYCKuIO3bFGx5faUpsQpn3JX5XZHGuJOIGxnGqC1HU8BAGAUapOdjxSLdFTJfxrBKavUhWx64bGKf2D0Jto1GXqbt+pmS2WopMFDKqbX3jDtajV5uY4W55V4bXq+7sLvzIDrOLUcl0fLdGveDR0fF98eDho29G4g/fzkdHx/H9EX/w8NHowfGjR0cPjr55cHh4GKZFKJVQRlcA2HRzcoTPZPAJD36PKLvDrp62KXhXj8nyqoUZ0qn7GSRofOA6AfnCMJs8YJl1XNrEuuaEHzLF4j+ZRvExcyKCRIbJ4IXgRbSq46u9dUTZg60Bs1UI02TQmVwQYs2T6ijCIH5eLJHpTYEoFDLuwKG/51ZDXfEijhR4OdxbVk9zvjJdsTHnhiFulihr1rXUBd+oJjGKwedlLIYNzlZNQ0ZYGggjkWbS954+PbMJnwqtdI67krhKVJUXPAWDrB6CU4CdZ2g1BInDKpziCghmQIjxTrsoZjsIuBhPNKaUupvjY9NxHS65xr5AEsatQiyIs8XKAJS0GTk3K6bXmeFXiPwv4HlErwJGLOSViKf452QAxZOOju/DuCfNL5+w2dvJAL4yGcCLTdweY+bMFK/R4HoGi3peQQ3h1oXQKrmoX2jMD7LrQfha096F+xeBK8r9Vl0dl6wzYvU7G77E63e3nd8zyRgu7d+lKNawttoyxy2A7LhrWuPpAl1ul5xYn+WiheCJxa6Zm21GltDJ4Jb9e2h1AY0zwLELHfGckIkKot0COcae76330GlJPp0ihkJeAEAGGqpMpRmcHB1et5R+y52Gu52wbTEGVf0ob8s/Z1G+l9Bz9t3PXUJed95pUw35z8oHaZQf2JRFBKob9IY4AJvTiwC9CNCLAL0I0IsAvQjwZYoAkSog43GqkeK0pYHv6HciSPvYfeyETHeQsM9XQqhvQ01Y2LmghtzQ2NGePffs+TNizytC6FI7fAZezXQZrSA6DX5GuulQqlbdp2KQYV0fFy2IDgdXWdpYVmwUW8BY6UpeV8x3911HSDZUKiLgcQSjTQxutV2GtlZnCgDG667PIVbSFS9ywZpDvyAAltwGNoprs/8k9Jgc1nwmj1N2Slthy07BKywXJN1cquL8L1tCBdCDXyFEiwD/7HcQkAJ3oO6I6FBVoOyHHwN3WgsDNGUTUlBkayFwl8QVOGR8pvXTp2dByEeH5ANTOkqDskRJ9nAQIZxoYEWJcdORVFvtP2BtTX6zHWXabIzc2/jYTh5sYIt9weBRlbdPu1HhLG2M8wYJvhRFsPLdGG15QzdOO0ZjlP2wDRNzn4N93fLJ7XW9/ybWIq62ody59nN4wRMJwo5w9boFC7n8ceQUxH6Q3h15ni5kYkSx3w7R+5s3qdTVHo3Zd+RQojLjyJmg5j9Kz3RZgWKn6xG9CeR3xB5n7HuA/nlVkRzBaQiVLZnSzXHto615ayYIlvV0BS4MSvwo3yM7tsK1r57fuBKTzMbHacMLDFbCgjiQ3zB0JRCAsgb19ediKTMbHBxkWjSCSSuEqAPcIcPV6/xZAXkn5Gwj4GPQMTwhUBFEiVEwAcfYg1RozZe4dbqcp9KYitxYny59yu8Az9aTrHsbmI2KIGAd7CnGpWPAN6oAlKXhS5eVBbpSJ5mtTliIkYBX0ckWl4Xjac0aFaCJ6XKuIXDD+1xB+w21Rw1igN2HjguwUWJv3Vn6L0QDDDeMOLOY+gNet3aIJODibvH5Meimo7puao/D+pmzLgQY1yO+24pngnwfmPGUo9bXCotC+N5sZY0YpGQVpVimItPdznekFjiMVcMwBL8KtbsUcrnqjknc5Bi343zoJ0mQ4D5UJfjLwyhZF4zneTmC86QCOgi3shSyex30G5xBxotCXTq6XAhdJkbvSQRjFY2rwCn2J3ZARc8EDDh4P8oYHm5PH3v62NPHT0ofE3ElI55MseJjrpINisFP6pKlJaqyRAuZfZHpSEFWG4ZEFRW2iXQu4hizk2BAQDjbBHGRKG7CGq+HqDXZeq+QPSBSnhkZdRDv04wiXPAauEhpwE4ZQ8iKVfz4ErDWuGAUlAwxx4p+RneMz9jaEuFf5TuSylnFXtZrVlbjfAoj4tYLvxCnkbVX9A8CyVms20XCCP49VM0mTgQiMzr1bM4H7bFaLLToyOF5hsdFsfDIQ1CkPpc5QpbzZVDgzRdLc0kO/ohlZu4fN47Yb9fhtbdcNr/ukmOyLigomfeGHz4KPnx0eG0DUa9MWzVukpdtVc+s+SAvhPbxgI5wuyhBUA9NVV8XlgHq9Zj901qLMbUQbMrRikP1VVHoKZHpe3wBbB1opICw2UjUfxli7Bd6MhQ4OKwR26Zi4EP3YcS64YZ5mOHnAtiuiERseVpD7WqC1i2HVOdVvVAZC/RKXWaOA2GKDzfRCk2X4V61cmIB81wROMcrbcRj5yZfIhFwP43Z6TJTQKPkgs2aGzBDpgnH4eLA0NQT8RxyV8iEX4IFzL5ngxTDRFY7Ng7WPERRTBmWKBtllwqeUWq6j2yEFLmMwvQgfys85n2QG3C4OhU8x3c/FIsGn/pMEIzf9JE08WvXkfjxn/ya7EVPK+JdJ+pebDmu7cFeWLlxC/7TSPkBdwBE+Knhyw2Z1nxp2xUUmLHXgi/UBKpVqoXBFHcSt1zCA7cKw08vz57e+5+zpzg7IK4C5wLKRpBhnkrYTOehLG0BgYwFWRhYux+8QSDjxyBZFSL80kouVwkoxNg7AcsUFOzVKXUSbL0XnIHFZQGdJp3Pvr5gq3tsjeH/o0j/TGlh8ftvrcji3/DG1pdU21evTOLl2Wtf7+HG1usjt+nYccfFPq6hOp1QcEBu6tBbgdDVjfYorxY8O7claLcKYM9xpJcH7fV2xt7ndh6KVLgAkTpXl6Ig6mBThWQKG087qYrYUaG6xeSvmHoLVz34AHGi0jEQpU01vVtCO3HDJZZA9krCM6gmDuH1OITeQvcUZJmTjGgnmsFOzGCW2WSQqUxMBrN3S2rwCUThPnftK1WYwGAGr3g0VvGutWl+cclhLo901oJqNvT3yMmwNn2efp+SLxkciX6XxsHPkIWABTVAkgUu7owZppBgjnAtCqgVLcBT1LHJdQDAZsB2/u1tYVsbGyBzZ1ggAHT6xOFttQqsg1AmRkIuUskDfEJwUr7GSgS+aA3YwrLz6fE3x98cP/zm6Nsxe6KCjiu0c2dnz6t5Tp8wICAUNmWdskOPzLWhQZWDMbt794nf0Lt3TzBxpHkkdrrtcY0A7+2//JcD+Q93JpP49zVSVFsRbrT7sC8pUPvwBtEiSImqNnjX9uBbsEFjrAy+3+ZsJax0paZnwalOL44Godrbkjc6S524qkTbtOK5qGpeV4KTJy/O0Gcd99X9Qbc3ZWgOoSFSLgqQebQtPeIc9thG+mSSHTkaq7EcBnWMdmDwKFJFbCssYQGhZAnlyVfpeJIdj9kL9AsGxxL7V4PO10IWaNUkE9N4kt2Hb1IBLwpHydkz9+LQcsVnzq9fjwW01VakZrjlQbmgl/5hsAOw+mDPtOFLRAfGQZOQGe25ZTG2FYXfSCBblLQFfOkyo9mHLFeQ8SqhvBArRFxGzhjaPkduaE768HaDBno5jFosurwOW9GIpqD9BUuu0CuVUHhKHaFsyvA7I5RL0iM4PyZ6seMxe+yqMyGzoi8WIlUX1Jho7echrzkZMOfC1ZkJer64LRmzBuqRHZzqy1v001SEhcJBmpgboBpB9NFwzS04RLZFWaCUeiOkAyMSGo4OEH0PkFsc0PQHpJzVW3q1F4Yxj0N7ulXBI7qBbQswdu5FRJta4TXA6I0NMhr24IUtOFQToCppDSRiPHYnHt/WQrBJtxVwMrhDJU0iVWAxPpCNu7wMZN11klPYhsOlRbtaVc8D8QDs94vO/Oc6yy+168jjIiJdeUFrBiXZtSG4fjDpjMAMRDKCwvlMK8ytoCLxySknI6xc5EM8hqistB7afRbahTKGHjLbjqzx0naRzG6v3eipg65bVCip10R9e7dz9aUwtw9ujRHogzvsLrMP3LKnHsy5Utoc3PnUDN95WnuW37P8nuX3LP9zYPk3ZqgQovqDpc8hM03TDltGJydFnyJP2Bkvlliw87lIxAW3URpznuA/C/8QNiGWWCjIrMEq97EYbZpuNHz470/nkutZlfHUbdLoUle3M0vYPshAqH2nm1VWewFjxuwnuQRMsxHf0jrkWQoUxo/dKwDA89bD8f2eV/a8sueVPa/seeW788qzs+chi8Tt2s0kXXFrNELnSaVGa2J+EKEXtXLDqPb1x2KNCHrAHNFmT8dfiJEDz6glxoDtMNXjNgQW5DBc1yVHdBEGKkKF1TBDnMPYzjynLgL1DcBINBGVUDyemjrapIuq/mX99O5QFJeNy3rYCuGqQN6QwbnFEgHLDtEBHEld2JAnPBJwrf29c5gBXafRdp6q2IkmqpDLjqMnf9p7dDBo4wDAO4NM7IAauHSsWGU7yo3januL+6cUKb4UgeLGdPiZykR18+p9Tnrna+987Z2vvfP162IFXw4z6LXLXrv8IrTLr8v52vtce59rb0fuOX3P6XtO/7Vx+g/lc+29rb23teeSPZfsuWTPJXsu2fC29l7W3svaiQa9e7W3qffu1Y/nXn3TLLoTeF7b9XCgyCYUw3HlkzfZqsLSnlSwvVAJq97afQ93doisJgtaRFb1f2y5XTxfLHoOo+TSV8+wrelWtQ7hGwy3tQVPsWqN2eLKowFO54Acdmy4yBZCkF5EZZT8aUNjMFySs/Na5zV2ch4zhmWj2awFwsz2pbO+PSunzcssTtCVGLbHxgqjjoicsEl2F523s7xQaW58+eyZ96RX9a1Jmcuw3kStWK2bBOqhQRGAMbvLZgj01J//TFdFkEWawwKoC/kkgxbg5PCE+sUVrOIqEnnYy9q2trM1nmKBRYRtpV0YllJdCihIgDsxZt9fiMwVemsvkcqkkODT3lXnHNa+sIFLMCdoaKUvhGitVY/xwQzQKyyKX39fXEF9A2mS9dgW0N8GA3p/HbCurotvYVfTp13aPX0Gjo1WPj7orIxdb1RZ2YxTFQHVm8siHh2PDwfUcBt2sBvj0bO+cQVVDetZMMtsd+fMzQB1ethTfjWFk7Hl4af2cnVf0Db/bIgLxEZbBQnsfr576a6H1WZuK1hPp5zyjEMzWBTk9VobkVJlC/ADFCqx7VlpvqritDuKC7qYUGrQhhXM1RXcHAvNmP2kLsUFVMOCGanxhq+jZjqJw4XkdNFcyfrxBioitasVg3hKPVMf5zxaBXXv3fAx+0EV1iSDnUw18H8sSKOqOvDdIEH5B/rpdaKy5Qg/V2s0+ub2yphcn9y7F6tIjy2nHEcqxQf37P7dsz+M6O8RWazubPevvIbmGW8nAzgNW8ATz2kyGDo/XWboB6haBooXZyuR5FD4wuIc11piccjxZHA9hAl/B4VDgP/fvvXv51T4TGbslgUQC97RY30HhrMGCFQqtAXAj/LCyrBuptP46hdVxK9v2e+NZRaLqzf1y+Chan7Gw93xrVtvLeDjpTAvxZW5fed6MmB2eQIKXu4JtPWzQVGZMk2hR7bDc2KiB7fehvtyfVATIBmfQ8ESp/lhAdU3k2wQXsOrjjp6KDX4Hva16Cw4igW/UFQYLBG8oDAcrH+PtLCJolYI8dM5LSEQRjbxqB77vkTs28jAXHXMaVV+rY2b35EwbZs+IcN0BL7ySlOH+qpSE2dYd5ZB74YUV5TFKFtwbGlBOsoJTiIy97oTvICw2nKKKzCUof6dOUaQlKL6DkEAKo7vwEuqF1khncoz27DameMadB8qT8LTp2cHGqWJooyo7YHXSH036zWLZWSwuikwjwgq1iXrzp1hTuurdZXfws79rbt/WCtgFvSTnyYcwuWWHSz9qf3FCuKdspyr/7+toCovjcI/yZpQAqQFHwwHv67g+bkC2Dk+KbAVgVnBv7MkRisP/DvHMTqHf/8rz/BJAiNLeH4hoQKSzGB8JGCG8hyeiwTGrMQcvsjh+UrCu2UBI/UlvDUX8CTV+HVogxQaPCzkTtV0G4KpiA0pOuyxcAa/bWks0dA13e20mtMvj58/O33240l1DTIQv0UhUTpI2EKgOkJ4Ni8EP0dxD+yNGVTAgp7OqFZdyMKUiNcZRmTKCAwCiEZQDtE2kaimdtXLIpVdiGKJ3WpUbtC112x74U2Hc+wfUr8CFPCBNYn3sFwmSbpFLyXFwPbkmS1zM3owu+P0U4wdQiInfyUVHYzIgZlYGuJcNRGRppyLlczijVrAjhiV3DwYWAJo1LnYVHO+LbTT6KbNyxqqCQVuWOwWKq5VWuqGFjkAOBKyaqTdxKa7MeXntloaER0UcQuexSrFrjoJ0NbLxnhpxy1UhAooengBXQBMbWS0h7fyGugC2cTX01xkPDEdpZPrwOIw+atAk5vd2oYxDvv3YRiVm9w3GwSzhVZswQvoOB8VgmtH7PEkDoDenotErpSKKSQsF65cIwQxY0+wC1HMuZHpfkuk8sGR+CAr9PWwV9BiJc8FLzoXJ7M9Fmd4cg7cH6oM47dyGel9FgU2t0jarvXt9bww60SEDI14cpmgVkgWj5Sj0dLPsptqaJh1Q6MHOwvT9svc1EwbtmwjniJJSGRbmmVlCl3isVOYg8R2BQMuzDXTKCEwHMgTsElNXh9NJm+G8I9j/Icw0ZhmA2N7bSr0CfrwOygCjwNXJk3CgfVPcvbq+VM8Kjb7I2erQiz+NBmUBXAfjPefDP6MkZX2zz/e43+e0cQpL85jdZnB5D+Ec85eh2+8uR3Mdmc27rS8OG6OTgDoa4FbBTzVpAn6WuhbaGkN5vv/2/sW5rZxLN2/wqvpqjxGkmXHSU+7ZmevJ0l3+06SzibO7bsbZyWIhCSMSYJDULbVWf/3W+ccAARI6OE8Ou6EW7XTDgWCeJ73+U54i2BKugGoEpWza2PaNdIlEA+R1keWzoRIhTc9YPVNqhxpS8CxqirFdFlxq9RbHE3ENAesVWAq0D1p2tkKQgz3ZlLuvYfqGCK53nuPDUVyPcEPGmvVxJmgMWjyrKhM+bHNzMN8sKHVU2U2+21E0nR2aQ0EKlzzj11JUPR0F4prHwecM+SvgIgaaRHFRveKPJq8fYeSr+mpr4k+rhAyuBfRlBuSg3pS7S6AoZL3QtsKh976Nm5wKuW50lfg7Yt3d//qLP/f7k1wmGYYNdQ6XPMNx2HiLu6EzDl6j8hwaZZkgjuCwt31RMc2++NzLtol0rXSqqDkzLXtNU/VUzmFPtvTuTR+O3Mo7jjnWkdGKCx/ioM66x2d9U7pr+stcoszFXSVWJemHqBfT478E+MZi0GOHGPJBVUhf0b3VvtIPs010CnINWbv9fuR874OAcHF9BwLO/g1nGH/ZGU3f+CKXfDxQqhKhqov/FpXkYCGjmoMxWDprcA4mq4lXV7uXasMKyGyhorx3bwk6yWfri3H+iuf7l6K9ZJP/2BlWOupeyVYN06kUX7VWb2u9GpXevV2lV5tHWS3+Cp590GW/CMVX61kxK8gSmdLviYspaqi45MogcQTWdDKHIwODnufvlCMWxfG1hw6cGH8sUiMBmgPQEzpc2YaGMV5g5RcsQuRroDe15PWz5wkrERipa2A6Q1KzstZpBsgp9L5TWSnpA4CodOt01KHHqZp9MuLZ/8JZZy4zQBS3HzEqePKr1hc2Y/bSzkX1WI5BXH1rHevD6W8Wk3QW9Voh2j2Ik1isNlqMcd55b7fHoYxhSJaytac1UZGz+rZLnDaqODmBX852/DWmQbwCn/AvX7v/lBVLD6Hyz1L5SU+fYd4+R+5aboDU/vW37Zta68Klm1c+SlLhl6jrcvutP78i24+BubXvOQpMrCBkssy5nqJdy2C7Ik9rtwXksM+TOKaU5Wslrj1Ew+8FJa15ry6oaCFjGHGdfET7dOh0/Lm1bMbhIB+BjlszquWEBaeYUACg9XsxK9O/Lp94ld9hFma3gpJa1mm6y1mGI5XxQuPOAy7QqZdIdNvo5BpxquFDETX/nx6+jKiH3eQzX96etrr917+8hr/8wb+98nTZ09Pn/b6vZ+fHj9BKWDBWRKMZMBv6V8xULwWxZ2E+uCl3LWctLm83e3tbu9XdHunMgnYEF7RhYngV+TNcDH3Xr45NVdJdQyuuyLfyBWh+LBxyRNR8jgUCe74LqhxhAzJvhG8LNaD0d2W7rZ8PbcF1Fi5rMaKxzJPApfF8BbdkMyl2DZ4TYzFuLsm3TX5iq4JKCtjsNoFbsgL60rBBto2jYfS123MJnYXp7s438rFgayuG10cyELork13bb7ta6NUOr7gpZhtDr2iJtHr18+iGDqZIchVp8B0N+WbuSmQPaJdOePpqgrxGRPzYrdKQS6AADSBCkGk8CBV5TKPLUZFx2i66/P1X58bhIvosI1PHyuSsmyasHaoyDN8vkuoCPXwIZEiFGgHZzIMYf3F4kVoSl64yNpZNqJF9HqC7C1lGqzq8SYX/4LDlwAu0UzwkuINsO/NRTH+u5LpeHjfO5/waP/gAT98+Oj7Af/LD9PB/kHyYMAOHz4aHB48erR/uP/94Wg0aoQmnCRdQEsX0HJLAlowv81EpxRMqZpv6ntncde/TIRLmExTcQF7Fd/rCj+UU9076uGgKLnQo9SaMPQ/lGZTNj5s7BiTkmCfWgT8tW10otvsQszrriPT9YdQdvuuyPU+NvPuvxhtDyyeR+h3W4EG1Q/tSEdeO/J6O8iriRdcf7TdvI0YJfDxOV/dmuSNekjhyEIYqxanVuajFSshNpJexSWw2bNm8gi1AGqSTotI+nY+MFYCHdK4Bs1EskBKSLYanOfyMuXJnA8gwR1JgCn5sa6+2zIoDXrZvo4ORtPpA9bhjJdsmq6ixTJjYKZlCV7akydhKBM7TJbnkApZcgiOH5uEFX0Mgwm68JPBurGDosRYXEoerOVWfxG+ER3jZ6Onr3+KXuGnGwQyVONzWgo+cwlUZNEyVq0BaTPE5qE8lllR8gXPFQC18fxClDInVBKAo44F/BfyDuZw13KN+m+Ga2jOGqQMQ5HO+WpACmbBhMYEVth5pRNG3YHjKSRMBUPG55DCnAGAiYYBtwgQDMyMkF4RKHRzU2klkfHYpEW4Z6LX7604KyHB6OAQQZNYWcFIYUmXqmIi18A/qISaeaxJrqppjt0pdDBAMjXObbZM02gheAmkFRJNAjt506nBZQsddPdo6GE5JHjdOd1ZUQ/LXJ9eaVfL6RgJUkDsW07XvBgQ9pbTAbGtDxLxLiTB9AJrQICPpO7xy+nudm18qW7DVJuynF3cToLrJLjfTYKzlxX2LYCt5Z9gK7rU6Lx9wtAxEowhM0aA8YWw7ddTG7PXlHtBvFDQ0pk6d/HhwuM1oOYRwJHlMpNLla42M+pX/ELwSy3zJBwQo/M5QV8UwDB0aG10dvan/YMHBKPF42WJ5XiUWnJCUaCjNq4qMc5Evgw6KE71vRKA3wxwINTQeiYcCzG/KkTJXeIWxrd6dNhI2rUTezTanZs4pLwBDmFIVAOcIQQSXA5i92Rp/Ob15+qUcKHrA4jplABYC7OXquHS2H6QaKBB2f3YSL8gwBMCthGDEZBmrdBdm0TfjgY/sMFvx4P/Gg/e/fm7Fp5xxq7Mv7x8zroas04TdS6y8Um4JwgApzaAQpoDMuULdiFkqXHdzNICsyTvFhFgAIzT6OwpT47wciY8FoCKclk7mAHyqiLcLF1fJuO1LKi/Cf0VUFAJcEmqo+iYGGHJDUA1+m3MAO9Sn4i9hbVGnLHdg654seAIDWV70qMgH5fpBy4D+MXqtzdiLvkThh20I4ZW5ps+eGHrJSf9vvlT89JoJgNAht42rpXgrQZt2VJYbK831fC26DEj3xGUKAAAw4b8/xFyLGUX9456BcqFWi6BuB51bmR3II/jEsll29ZYX7537TXy5cM1IDDraM3NpVaju4xBV21Lrsf651ecJTtIr3mtC0F/HyLCwnuuUqXaPuFLWZ6rgsX8i8mz3qp5Mu22+TfkWn/5O9m2k21vjWzbPsmfX76112GdYe7kiTEx2eEhSAvbYu1iZTVm03j/4AEBkMUy0Q6a9jfMr2bDzYJssmVpjlqySwD/ZYo/OvRRWuAX9BLBSIBSbGB22AgGgBRFw9Lc3R9ou969rZKuj9K8PxrhnJNt3+V5sv6rfYo/BRPdTQdwMNpdvm4yHF/GRi/dx4vXgaO9XfViV2MIktoWUTUDJFs/mgoBOEg/YglF70hE68sRAXfO1TB64gAcHjx89I+/31ydsRhE+6PDvzz8/pFbbOPg0cH+4aGODVsTe9zGQdIxyMCVYZgDAojFWTRGPBrdFF7YG+9o5A2WzkvoSOwgHX2EDDQvebFeBvqp5MXNZCDo70NkIELxIacJYdXbLjeYYX9fyQfmFpZ81sx6neSDi95JPp3kc/skH3uSb63kQ5TiJrLPRthfg01b18mENblryjHQgpR8zq+2FAPiZSnL/6HqZUip+z14dyzpLm4QQvATscwyLAVXNGMOt2OFOehgA9Hr9wb5DUDAmrT+07uJRMbmfI22fQK/7axqY08frGenkvRs7EXVMUFUpUFRJ07w7RfhNvVieaxm48wbfMZZ747JdEzm1jCZxhm+VRyGxubyGTBkbgmDBjbzlg1+Gw1+MFZ/nwcVC1nJMXswO6CbCN6q9kie4PMoBQBXuvM4mDoXY4eaQKm8xKo880Ww8I4zLHiwM3PwyPOn5ww2KkmTYK3d+iziiW702LbZJajAjcfRr30Iz6C3iQKaHms7LRwTVgq5NMUtvly8QWApPQay23o0OElofzqW0rGUW8NS1p3qW8VbXK6i6clN1BeqdDE2hqWWGkGFMNqWW/iOE+62iYnYkjNeUL+NqPPMurbttrhJq9+4gZPt8ZnV2bwkL5/86LxTyagexq68LMxHPjVTg06ctFGfkxHB0zkIu2k8RL19pgWLOF2KtBqI3GY0wLHXKSxUf95UYNQlk5zoXVt0cLoEgGy8KPgOixKeCCp06n8SeZGKFzxjVOcU7wzgdJ/id3meUL28SkaJUDHcO6+CMjRC/XaK/ukK68ZQBsqkvoy2frv39XCi5+/DVmnLxvoE3Kl5mIi9pd/MR/1eurS8js93fP5meSM2FZwy0iFSyySD6Fq4Ov7Hlu2DN5zcPomygEh4XVaWgmPqbi6xOqusa1wCzaTvgXiAogPQSigOr+vCUzwgUVXLSfpRLssIkjB0konOUsGQKZcQ452GPTpd2EZYgi1VWNXS3ByLIKC0DIEAAfqFJabrQ6o3RQclsor8ZHO1yit2hYf/NTyP6VU4ETNxxZMx/vOsB9Fd+wcPoN2T5pePsEwWfEXXmm7no/M0wYqfUDwLJvWqHjUE71kQAedCY6CLng+Or9Xtfbh/VJFONa8OflLBa/6ddV9i/t01r9TXAqpBw9Sw7grMzZvmsDUg3e6a5ngy8woiai5acpbq0zUxvU2wjBr8U/+7r0MNFfYA285VzAo6TBQT9x1Ip3p/v/vUCaG2Osz+6JPnhjYln+fxbn7E549f/lGKamWx7wwMD70hCGRx0TH/jvl3zL9j/h3z75j/t8H8AUtJlmz3CpsxvfAHq7KpRx2qtLl1Qg0xwe+q48YdN75N3Njm/5vz7OE2VKYG8K2AbNi13iYtonOr9TQUWT8XOM4Sr7s6/1SYDV5S2MhLCzvOohNaCjJ3TxEzr+AkzEA6yL/vbvluEWA/xDhUX/lDYoz9Q4H8zdRAbKTsPXv23CnUGBB0MABXU5qyxjrUBR9bMHlexpw32/+AuTX5zeYj0y4SrTO5DC6gRD5oFrDFvqDxwNSrNKvh+K5wYXR8WcQBPNKZ+W4gJLJcg/1gGI2NZuuTWGg+h3B36z/ZDjVrpCL68Ijb5n4OL1giQafDnb1qjUX73C3yCwjrhjyPCfHw42FazEhsLCFmzk15xAVkPCJnAggqFJbpsgLFzlYDehPI7yA6ziMf+TOi4TRkyJYIafq4BoaAFJK1ehLKoStwYVDAR3Ee2fEW6NCzfC12qIX8DKN9Il/pSgR1oKdfPehp3+hFicgAhicYoovUAptFdTMQcuq+o0su5otw4M+W6nSUdeLmjCRyOU3hNuXLFAVnM16Hl+NwntSDdvCANIUMz4N+gz3IWVnKy1bh5J2IYCLjYY3EE/1bdIfnc5FzDg3ufBxldDe3o48dfezo4xeljym/AhisMeS2lYVM1ygGP8vLKFuiKku0MNIvRiqWJdg0ZQawAfa08WzKEwzExwYO4WwTxFkqWeUm0Y3cJDoEVMhYXok4QLxPcgpl8aEsZK5EArEpWvFjczi1lYk6QckQCLz+Gb0vbu2RdSFUxnij1akerDm95Qfk1u0sDAKerdd2IkYja8/oP2hIxkBtg2WswE3j30HVbJ4JR2RGOH2R6+LzsMZyNlM8EHlWV27RPARF6nNR4MgKNhe5RdK/QZ6kmxcJabzaULk9d9MZRcmRFtw4QdN+eB++rO9cWzVukpc1QYuVRihBBwEh6+lnmnDb8EVgqHXhW5gGqNfD6D+1cVjm6QpNyPGClSyGOz4mMr3HZsDWMYUS8iRj7v/SxyAvdFxI8GdomzUdmRU+NB/GU9df009UsXMObJfHPNE8raF2NYcWlkPq/apfqI0FaiEvcxfyKGMV5YV6awUcSChgZkvFZ8sUT95CGqAm4pVNZEZ3kS+RCDjYh/NcIiDpLJo0F2CCTBO2wwR8oaknZgXESZLFHnKdzXs0G43EQpYk3TZx5txHUUxWUSp1OF3GWQ4zjRnaxKYrcPxSPQoAYJRl4m7zLocbznC9K7iPH74p+hh86T3BYfyht6R5vrZtiW3/xa/JTvS0Jt4+Ua/BEbw12OlUrl2C3/tQfsIVQFyMiq2B5KjYXOPRl6xQgfG5mkA9SzmreE42dfLQgJIUMa0w/Hz6/Nne/3v+DHuHgyvBuYCyUcKRz/LSOiSB3SCSVMSKIhXawQ5V4cEbBDJ+ApJVyd0vQQZSCgoxofJCZ2X05gQNee33nD3QZ5nnibIuen/CWvfYGCb+V579raehPz56aXme/IEX1p+St65WmcTLs9O67uHCXvuoYC06dhC42AfeUacdcjbIdO16K3B0DdwLkFdLlp8TrdgsgL3CllYe1NfbGHtf6X4oMOECROpCXvKSqAMG0UuIni/lBa2kLBNDhXyLyd9Xkb7qzgeIExnQu0yqqu7eTMGLjKct0TCAdxRE5+fD6BTj6LEJvYXuKcUrLSPqjiawEhPoZXLWy2XOz3oT9CULWJAMJHCJK6ZltdULlmFoGKGqZawoNCqQBSJ01zm0rkhvKXbBKh6NWezug/c/gOaeyjjehYomrVFN+vYeGRkWcwnM72PyJYMj0a7S0PkZ0g2EihIOkixwcWPMqEoB5oiI7Fm0ixWMp/RPE0Vk4ArY/gN3x3HmtxbWOcw7pA/Vs0B072VaiVTkc0CHLr0NydgKDHjW4Yq2sPx8fPD9wfcHD7/f/2EYPSH5xl25589f1f2cPImAgFCUlHbK9u1h9prSxuJODaP795/YBb1//wgzRJpborvbHMYI47377//LDPkv987Okj97pMibES60+TDFvriLm+NhD4oW6FZvLvC25cG3YIGG0cnOi7MFXxbeGD93dnV8sd9z1d6WvOHP5rUXCJdt0oox7Q0UY/DpW8HJkhdj6NOO+/r+oNsbWBViYlUGRpe+OJPGYa8qXkBcx76hsRAbA357yE8zw2BxLMuESj5EAh6kc1mKapENz/KDYfQa/YLOtiT2VcJiIn1alAQDiiam4Vn+AL4JU1M6HKWIXpgX+5orvjB+fT/0T6cAChXhkmPkygtZ8SPi/fjQWQGYvbNmqmJzPA4RA01C5LTmmsX0Sc+3Cwlki7KzgC9d5tR7PyokQBwJlqarqOTJMjbG0PY+sor6pA9vNmigl6OSs1nI67DxGFEXtL5gyeVqIdNEw1W6B0qX6P3gA0X+aRbROD/n8YoOhtExflQrgPqLJc/kBeJv5ivbD3nNyYA55alWGOojY5dkGDWOHtnBoT97/JTErEUKB2meXOeo0Yg+21kzE3YP22xZopR6o0MHRiQ0HN3B43sHucUd6v4OKWde0E9gYhji2Ne7W2fh0g1sW4ABRYYO2lgLr86JNjVtHaZLQZANe/Aswse+AFVLayAR47Yb8fiu4jw6C1sBz3r3CLcsliUiNIBsHPIykHXXSE4u/O1jLRfomxe/csQDsN/PgrVIfJa/VBgDHKpaSGZQkl0bgusnk85omI5IRqMwPtP65NajIvHJKCcDAr0w/os+Kiuth3qduTKhjK6HTCOwN17aLJLp5dULPTajW1MZR6EW5y/vZq4+59XdO98NcdB37kX3I/3A4inYYU6lVNWde1+a4RtPa8fyO5bfsfyO5d8Gln9jhgohqj9q+uwy0ywL2DKCnBR9iiyNnrMSnJdp9Iqn/ILpKI0pS3UhLvMQFiERiCYB9T7yz8Zos2yt4cN+fzwVTE3qBKewSSOkrm5mlrB8kIHgfWdNPRa7FtBmGP0s5nDSdMS30A75KAMKY9vuFABgeeto+KDjlR2v7Hhlxys7XvnhvPL581cui8Tl2s4kmT4faIQu0lqNVsT8IEIvbuWGzZCVfi7WiEN3mCPa7Gn7Sz4ww6vkHGPAtpjqcRkcC7IbrmuSI0KEYYXePGjgnTmM7SyKdOXAC5szA5FoPF5W4oJTETKddNGLRRkvU1be9XfvHkVx6bish60QrnrIaxI2N1giYNrucQBHUug0FCmLOVxre+/MyUgkp6jOTCZGNJGlmAe2nvxpPqzlR54BGO8EEq8damDSsRKZB23w9a7jbDuL+5cUKb4WgeLGdPiFzHl983zwuM752jlfO+dr53z9tljB18MMOu2y0y6/Cu3y23K+dj7Xzufa2ZE7Tt9x+o7Tf2uc/lP5XDtva+dt7bhkxyU7LtlxyY5LNrytnZe187IGj0HnXu1s6p179fO5V981QXccz2sbDwdANgEMx8Anr7NVudCehM9eyjSq39p+D3kOeb4BX+SvGrio7gx2Tjev8X803C7uL2KcQysxt+gZZP+LF8zFL1hjuPUmPEbUmmqDK48aGJ0DctgVcqYZ56QXEYyS3W2oAIZTMnZe7bzOZMLTYRQhbHQ0aQ0B/cYAhEO+PS2nTZd5kqIrsV5QjTBqiMhRdJbfR+ftpChlVlQWPntiPek1vjUpczniTXhgtaYTwEMDEIBhdD+a4KDHdv8nqgZB5lkBE1iWnJCw01Q7PBV3x0rlwusVwBs15U7ZQrjLGmkXmmWESwGABLgSw+jpBc8N0Ft7igSTQoJPe1WNc1hZYAOTYE6joZm+5rw1VzXEBxM4Xi4Gvv8+vwJ8A1Glq6HGy980BvT+msEaXBdbq87Tp03aPX0Gto1mPrwTRMbORG7Qr/a9WoYyBqo3FWUyOBiOsFg8rWD4xKNnfe0MagzridPLJAjHteOAgh72jF2NYWc0PPxYX67wBW3zz4a4QGy0BUig1/PDobse1ou5CbCedjljOdZkR0FerVTFM0K2AD9AKVOunE2uEafNVlzQxQSoQR1WMJVXcHP0aIbRz/KSXwAaFvRIdTYsjloVJA4XgtFFM5D1wzVURCiDFYPnFIJf8ui4YPHCwb03zYfRj7LUJhks+6yA/yMgjaxx4MNDAvgH+ultKvP5AD9n3Bt4IN/dXVRVoY729hIZq6HmlMNYZvhgT6/fnv5hQP8ekMXq3mb/yluolfH+rAe7oQE8cZ/Oen3jp8sr+gFQy0DxYtGCpwUAX+gzx5QSCA45POtd96HDPwFwCPD/u9/96xUBn4k8+k4PEAHv6LG6B82jxhAIKrQ1gJ/EhZZhTU8nydWvskzefqe/NxR5wq/e+ZfBjqr5GTvuwLe+e68HPpzz6pRfVXfvXZ/1Ij09DoCXOw5a+9kAVGaZZaxc2XNOTPTOd+/ddbm+4wmQEZsCYInR/BBA9d1Z3nOv4VUARw+lBoMO4kdnwVbM2IUkYLCUs5LCcBD/Hmlh84hqIcR2Z7QERxhZx6O60/c1nr61DMygY45r+LVg+WcQpnWNJ2SYhsDXXmmqj1wjNbEIcWcjqN2Q4YzyBGULhiUtSEc5wk54bl43ghcQVg2nuABDGerfuWEE6ZLX36ERgIpjS+2S6kVWSKPyTNbMdmK4Bt2H2pPw7NnzOwqlCajETPV+jUYas4JNRQocJRFxheimwDxiQKxLV8GViYzWx5Pd2Lm9dQ9GHoDZdY1pOk4ZhMvNAyz9mf5FC+JBWc7g/28CVGXLSuI/yZqwhJGWrNfv/baA5+cSxs7wSYmlCKoF/J2nCVp54O8C26gC/v5nkeOTFFou4fmFAAQkkUP7mEMPy3N4zlNos+BT+CKD5wsB7y5LaKku4a0phyeZwq9D1SPX4KFHblRNsyCYitiQot0aC8/htw2FJRq6prmdWnP69fjVi5MXPx3V1yAH8ZuXAqWDNJpxVEfonE1Lzs5R3AN7Yw4IWFC8GdWqC1FWSzzXOUZkihgMAniMAA5RF5GouzboZVSee47VamRRoWuvWfbCmg6nWD/EvwIU8IGYxDtYLtM026CXkmKga/JM5kU1OJzcM/opxg4hkRO/kYoORmTHTCwq4lyeiEhdTvlC5MlaLWBLjEpRHfY0AazkOV+HOd8W2ql10+alDdV0BG4IdguIa7WWuqZEDgwcCVndUi9i092YsXONlkZEB0XckuWJzLCqTgq09bLRXuh2MxmjAooeXjguMExViXgHb+U10AWyia/GBc9ZWgWgk/3BYjPxG0eTm17ahjEOy/VhGJXp3NYWBLOFktGMlf0o4XHJmTLEHnfiDtDbc56KhZQJhYQV3MA1QhAz1gS74OWUVSLbbYoEHxzzTzJDi4e9gBIrRcFZGZycyHeYXMXSc+D+gDKM3ypErHaZFNjcYqHL07fn87papdxlaMSTlylqhWTxyBgaLW0v26mGgl7XFHrQvURKf5lVnmlDwzbiLpKERLalSb7MoBw8VgozI9FVwYALMxUplBAibMhSsEmdvd0/O3vXhz8O8A9exUPqDYztXlfoE7ThdwACjw0XVZa6Df1PsujNq2e4VdHkryxalHz2b2e9ZQncB+P9z3p/w8hK/c+/7rG/TajjjJXnibzMofMf3T4nb9033t11ers3GQYtL4aboxMA6lrgUgFPrbIUfS30LbS0Ov2FtwimpBuAKlE5uzamXSNdAvEQaX1k6UyIVHjTAxbbpEKRtgQcq6pSTJcVt0q9xdFETHPAWgWmAt2Tpp2tIMRwbybl3nuojiGS67332FAk1xP8oLFWTZwJGoMmz4rKlB/bzDzMBxtaPVVms99GJE1nl9ZAoMI1/9iVBEVPd6G49nHAOUP+CoiokRZRbHSvyKPJ23co+Zqe+pro4wohg3sRTbkhOagn1e4CGCp5L7StcOitb+MGp1KeK30F3r54d/evzvL/7d4Eh2mGUUOtwzXfcBwm7uJOyJyj94gMl2ZJJrgjKNxdT3Rssz8+56JdIl0rrQpKzlzbXvNUPZVT6LM9nUvjtzOH4o5zrnVkhMJqpzios97RWe+U/rreIrc4U0FXiXVp6gH69eTIPzGesRjkyDGWXFAV8md0b7WP5NNcA52CXGP2Xr8fOe/rEBBcTM+xsINfwxn2T1Z28weu2AUfL4SqZKj6wq91FQlo6KjGUPuV3gqMo+la0uXl3rWqrhIia6gY30dXYP2VT3evvnrJp3+wyquXfBqqurpxIo2Kq3UXXbXVrtrqLau22jrIbr1VcuiD+PhHqrdayYhfQWDOlhRNWEpVRccnUQK5JrKglTkYHRz2Pn1tGLcUjC0zdOAi92NdGI3JHkCV0ufMNDC68gbBuGIXIl0Bia8nrZ85eVeJxOJaAWsbFJWXs0g3QOakU5rINEkdBKKlW6eljjZM0+iXF8/+Eyo3cZv0o7j5iFO6lV+xuLIft5dyLqrFcgoS6lnvXh+qd7WaoIOq0Q4B7EWaxGCm1ZKN88p9vz0MYwp1s5QtM6vtip6hs13TtFG0zYv3crbhrTMN4BX+gHv93v2hqlh8Dpd7lspLfPoOIfI/ctN0B6bcrb9t29ZeFSzbuPJTlgy9RluX3Wn9+RfdfAwsrnnJU2RgAyWXZcz1Eu9a99gTe1xRLyR6fQoh6yceaBqWsOa8uqF4hexgxnWVE+28oTPy5tWzG8R6fgbpa86rlugVnmFA7przqhO6OqHrFgpd9RFmaXor5Ktlma43jWHcXRUvPOIw7CqWdhVLv42KpRmvFjIQRvvz6enLiH7cQSL/6elpr997+ctr/M8b+N8nT589PX3a6/d+fnr8BGW8BWdJMGQBv6V/xYjwWgB3MueDl3LXutHm8na3t7u9X9HtncokYDl4RRcmgl+RN8PF3Hv55tRcJdUxuO6KfCNXhALBxiVPRMnjUMi346SgxhEyJPtG8LJYV0V3W7rb8vXcFlBj5bIaKx7LPAlcFsNbdEMykmLb4DUxduLumnTX5Cu6JqCsjMFqF7ghL6wDBRtoizQeSl+3MZvYXZzu4nwrFwfSt250cSDdoLs23bX5tq+NUun4gpditjnGippEr18/i2LoZIZoVp0C092Ub+amQJqIduWMp6sqxGdMpIvdKgVB/wJgAypEi8KDVJXLPLZgFB2j6a7P1399bhAkosM2PnuEyDOWTRO2S4RIii0/JECEourgKIYhqr9YmAhNyYsSWTvLRpAItcPMBinTYNWON7n4F5y5BHCHZoKXFGaAfW8uevHflUzHw/vesYRH+wcP+OHDR98P+F9+mA72D5IHA3b48NHg8ODRo/3D/e8PR6NRIyLhJOniWLo4llsSx4L5ayYopWBK1exS3zuLq/5lAlvC1JmKB9ir+F5X8KGc6d5RDwdFyYMegdaEof+JSPVrTL6HfT6BFCSRz3ch28q+RZlLhAp3Yxpu3xW53rFmBv0Xo+L1DMdmlB5J320FGvQ90GlHSDtCeksIqQkIXH+03XSMGEXs8Tlf3ZqcjHpI4dBBGKsWnFbmoxUrIfiRXsUlsHmwZvIImgB6kM52SPp2PjBWgg/SCAXN/LBApke2Gpzn8jLlyZwPIFUdSYAp3rGuUtsyKPd5ebuOkkXT6QNq4YyXbJquosUyY2CHZQle2pMnYVASO0yW55DUWHKIeR+bPBR9DIOptvCTQa2xg6IUV1xKHqzKVn8RvhEd42ejp69/il7hpxsEMlStc1oKPnMJVGRxL1atAWk7w+ahPJZZUfIFzxVArvH8QpQyJ3wRAJaOBfwX0gnmcNdyjd9vhmtozhrMC0ORzvlqQBpkwYRG91XYeaVTP92B4ykkdARDxueQjJwBFIkG9LZYDgzsiJA1EShZc1O5JJHx2GQ7uGei1++tOCshb+jgEOGPWFnBSGFJl6piItcQPqhlmnmsyZmqaY7dKfQgQFo0zm22TNNoIXgJpBXyRwI7edOpwWULHXT3aOhhOSR43TndWRMPy1yfXSt/vZyuaRwQ8JbTAbGqDxLrLiSB7AI7QHiOpO7xy2nmajkdk83Kk+Q2TLUpv5kOOqmtk9p+P6nNXlbYtwAyln+CrbhSY+v2CQHHSC2GtBihxRe8tl9PbaFeU6wF0T5BB2fq3EV3C4/XQJJHACaWy0wuVbrazJxf8QvBL7Wck3DAe87nBFxRAJPQ8bLR2dmf9g8eEAgWj5clFtNRaskJA4GO2riqxDgT+TLodTjV90oA+jKAeVBD625wzL78qhAld4lbGJ3q0WEj/9ZO7NFodw7ikPIGtIMhUQ1ohRDEbzmI3ZOl0ZfXn6tTQnWuDyBmRgLcLMxeqoafYvtBooEG5fVjI/GC0E741Ub0RTiZtYJ2bfB8Oxr8wAa/HQ/+azx49+fvWmjEGbsy//JSM+tayjrj07nIxtHgniCAi9oA6WgOyJQv2IWQpUZlM0sLzJJcVkSAAe5NY6unPDnCy5nwWACmyWXtNQbAqopQr3R1mIzX8p/+JvRXQDkkQBWpjqJjYoQlN/DS6IwxA7xLfSJyFlYKccZ2D7rixYIjsJPtSY+CHFemH7gM4Oyq396ImORPGHbQjhhamW/60IOtl5xM+uZPzUujmQzAEHrbuFZqt1qzZUthUb3eVMPboseMHEJQYADgBxsy/0fIrpQo3DvqFSgLarkEgnXUuZHXgTyOSySXbUtiffnetdfIlw/XQLisozUfLakea/XlFWfJDtJqXus7oN9+iMgK77mKk2o7di9lea4KFvMvJr+awY1htJ4Mu23+DTnW66iTZTtZ9vbIsu2T/PnlWXsd1hnfTp4YM5IdHuKrsC0WLVZWYzaN9w8eEFxYLIHIhL9hfjUbbhZkk71Kc9CSXQJUL1P80aEPsAK/AIuDIBSM4NzA3LARDAApikaUubs/0La7e1slWx9TeX80wjkn277L82T9V/sURApmuJsO4GC0uzzdZDi+TI0+t48XpwNHe7uqxa7GEOm0LSxqBrizfkgUomiQPsQSCsGRiK2XI17tnKth9MSBIzx4+Ogff7+5+mLhg/ZHh395+P0jtzTGwaOD/cNDHeC1JoC4DWGkA4mBK8MwBwTnirNojHg0uikYsDfe0cgbLJ2X0JHYQRr6ZDLPTyUvbibzzEtefIjMQ4A75AghJHnb5QbT6u8r6cDcwpLOmlmvk3SgeSfpdJLOLZR07Em+tZIOUYqbyDobQXkNcmxdxRLW5K4plkALUvI5v9pSqoeXpSz/h2qLIWXu9+DdsaS7uEHowE/EMsuwUFvRjBjcDuvlAHkNRK/fG+Q3wOtq0vrP7vo5ydic76xNC2j9wap0KkmVxl5UHdpDZRMUdeIEyX4RBoODa+vRG2feYC11Fx1f6fjK7eErjTN8q5gKjc1lLWCb3BK3DJzlLRv8Nhr8YAz5PtspFrKSY/ZgdkA3ERxQ7ZE8wedRCvCqdOdxMHXOxA5FelJ5iWVy5otgJRxnWPBgZ37gkefPzgye6ACLx0SQ4QTuEBHgBtDo1z6EO9DbROtMj7XRFQ4EK4VcmroSXy5YwEZk1fP1WMVu69HgGYFOO+bRMY/bwzzWnepbxUVc/qHpyU10EyoyMTZWopaOQDUo2mZY+I4Tn7aJXdhqL3035tuGwHk2Wtt2W6CjVV7cSMf2+MzqbF6Sl09+dN6pZFQPY1euFeYjn5p9uWtVZ3I6ZQzWnHuNmP4wgC3eALwOgFsHsK0dwOZ319fvrgO5GxAxQGOq2ZEusL5lsBpN3vZjsKb9qrfgwzW19XpOQT1cO6yq12J73mr6pfRMMDZxBFXxot+o6EjNkEaBmszKqahKiKm9SVD2+tJ1RPxmzqecsnV2UFsLzQ0OyeDglhpsCC924PiZgcEgD1btayURNYvO3dRR7xWfGw2/96vi7aMRupLFuIBff6A7U7VKo6ynBti6IYXBCi5YnlBNu5LlSqAAxkS6hCAlkgf8mPZc6q6g3BEFZemIbX3MXsGvTTFx8+ZThZwAQTf4B/aLuuUwohI5iVPUWksjMEwIdBGpwGxsNoeLWYWmt7VIjrNBXqnWqhS7+Sho3KCjYJ1uNoMKqljTESpQ0jg2V14Yea4IZ3wP3MKkWBoBex1PgUrNZuMsMMAT/WXdJjJiTCbSVGioLxO0RqE9OIEttSFG7hgfNdwldHBdd99IL+OmgZqV3DLQ6pLzPNL7sXWU7jAfjBrjfDDyB4r/BhROPUpglTJQ4eL5Mq1EkYpY3yhsZkqCyhxi0ZwFXz/kdlnARC6nKV/vlnJ9Uq4/87oVwoO0FfESYU/HQC5bfOE1PAxl8PEiwqAkm8avM6phsoCniBSR1DmqvVsrclpn1sXqKf0/0SjAUKIYvifge5nImV5dUyr7BfIDE0KUsaLQLnHXPsg8/vbY+2XrrHDgJY+5uODKj0D1h6u9XolgqZy7FY+Z0xEmWbQ64flcWzd9uybGgkFCuldnU2JFxboL/SWZQyVjUErxc7a+RJ+6yWV0ybCCzFxGOdarrHihhtFx5K8Vve5uA8tpJ5yKyiI0jaXiytlXkPQ1ZoShEhrZwUZDEaNGoZ/Kl4IW6eBOoJXHHILdFPf1ijoJJS3V3J/9HV9ewJdDQkOthTdOmhf66f+E5Ldes/UVTryVpXOzNPV0zf2yAaCuzKUVq8bWlDyaQ3H1vrM5ot4/Ek6m3BZ+13upN3CTH6NJGk7q7wZdAU51bldEMrKjIR96q7hArj5dOagpkFLnGYU+jDzYDt1pWNyWG0zD5ih6w4RBsTTVeDGbMWC2LMt0VQcow+4aPdpUc/RyJCNd+Mk0cjMlh9ELWekCrbbooftpoaJlAXaLpE/fU9FS0WWnjnJuj4puSIFLdjYLCiE2X+dXwPFE5YXgr7m+N8tU9Bdts8VX5GrcDt6uLyn83ozRHoOY5AirzoEgtApjbgunnxmNwCyEsVe7+6zLQWtDyA22cVsFrlqIajJ4kbjBuc6casAitO9+YgOpM+0+nWlMjK3vrN7CmqTWtzOs9F9vUvubdOgdkl0TNtbwZO5+0cOmaKcwwbr7/nemkKfpNSS7NUS6Y4Rw7i+PiauqzPp5pC2aCZ4mH6MlY97uwObtGqV5+33aMdnhsTE56HpbkdEl/JUOnEEk1duzc21CkJegO4suFwiRJZS/aZJvSUx+SaqgsuqWRdyCfFzgunUAWcueAhewZJqb68rwcHXHG4QRagJ7z/M5nCR7IzyZboM58EIbyH2nkX3qzs55aC2+eoyn0Lsz5vBwPZJlzPymTs7Symg1F7SNaHaf0rav7fX0o7XW//52/+iuLQuMYFHG6GGPjq44rqo97QG59zldBdAzSmrQp5Eg0VeQsUL1KXsGVYAJrS+c7Imz1RMiK8rzOkygsDNIjsyKha3jr4USXO8j1wkxjE5lwtAS4056GNUnAUd8FP0JjAgsXtzFKcAC0FzuffceHQXQ2/WfxOzud7rhcMHUC35V3etHf+J5Av8/CScE2UtgZ4ISCS+rNTPBS+jN4rMMN0z+XM/L+twhx/Zoa22bzKGkTh0K0/KdTI2WoLz3bdJW4OntD0dDgPBiy2oB0nZPL+Kg4ixDhr3VTtcUhtQCC3lPuTHcRcsCwnqQS3pz2NECF7JsOKRunRSEvPzvBKJxG+QgLbZ8EiEIOnEgLDuVp1N5OpXn61V5Ok2n03Q6TafTdDpNp9N0Ok2n03S+IU0nHONVOqD8JDXsysLtgdh31koP2PYFp1rief0lH1QLPpilq+gnw1VDzmVCM/NOR+16NOI0+iDBszvstZiux/Msb+u9TDnJYUKWosIkXoQpiio2t9h+d5ZlDV1GSsxVFS3kshz2CAVexzUWrFS8bDn7KKzxJf24PUzMc/jfURF17twG/EyCBJvYQcUT5KhwrHRrGgrIRegqbsYROKUDyOdp4goSE6tC6JElh3oBdUQWcDaqHnBzN2JNQ+o4Rnq0cYHewBDhGlzwGgsVxhazglAOhY2GgMHaBaNylOnKGzu5//XqQEJCicEE+DsEY6cIT4qudvAbL0VaDUTuf9iAWjNAWMQvY9iau6QmwMEI7jVtDWc9fLCf3tvuUCw9rbDjqddz3+6rN3+5TNM8u3F8qbfFWKKnxnd0DkSNz7jxTOBjpfmzXgKmXCjL//P6lxcYmSfh+M+pgEgtj6p4wTM2PMvfmDAMs+X6pDldUf+qPm8UGLJkJcsrjkC7gj54lqP1hCULXnJlzp0VBPVHbazLUnEQoNDYspJLbT+pr+hZPhMUZqhDQcDrX5M7J0waoodVVXKWuccLSMKvZMmp910oJyzeDXLgGcSpsKi5BU8vCCsLkYPPcjmLnA3FHylsJfyeRmBSpmiHILuQ2R5QGM5ylsp87oA54TqRFooakDbu6PIyMC0wVR1RKCWpG+39cucGBjNVgZXEhmpEOSxfmq6GRDf1R7EyS8kEnCuIEWJFkYp6Lw3xpI1Bsd7WV9OLTfsg8nm/CemsD6pQETC6C8r8wJAnkc9TUKDgloGSdIHLUjItFqG5T8+Ss4ziP+LFMj9X4VIun5qK1JP4EELiQbk6hVnqx9f93j+VzMe0Ce2xvtZnXkd6lawobPmNHBcED5S+YIEFCYh9+lut0jRbLQ0hAwN34rXoWgo0DvStkdYLtbZsmbiyNBFkxn5EfbRX9bq/xohjMfvw0rSgqkFKaq5NKN/vLRlBnXQ/18BDVFvEgcwNIjMgckccaG7MkRqLuDIXi4gi2L6RWjjBbPqQ6VrSMH1+xeoX7TFxLhj0Cz044ct9l3RkS1U5HSoelUtrVQjpOUcRZlhM6M0pQshAACHArtMhwnOuoIPjNHUNd+aNFIDz7A5OzImbRBgJBi+aCNz90cjtoJKIbY3kL2NX0UNKlFRwvHKOqILw9pvcRimCceJSlok6iuz+9CNrfeubNP9+pA2/+KP+Q+QnEJKGj/Av6PyVlHbBY5aDyRko5YTlq19mE5y7S2hqfStfpqgK22judVcYNh0v6Wv6ChpORe3TqO+HJka4rpqDR5XcdquNBLIr6cOxIP1rXJGIp3xbklGtM+soP9vCxhzXxnezWCD1bCA1PX0aV87S6OpkOEyhojv03TvD6ClYbwCfE4w5JNzAUQFCqGROS/zEdrO7tt+mK2v2DFFskCqjwIw2h/qmGiURRGIosoYSFfZBJlM9VhpMMJNl29b2YlHGy5SVd+85lpPQ5Buy6rowUptEZ/QYJKXrNmB3vIq1KV0b6lJibYaGzmCoxZSvgFFQZLP2Pmy2hFC1MmeEDd5Ke4vMFOYSYbvGvPGXO597o8wFa51CWA9TRE/tcGFpU7a5DX72vR4Nzr4TSXBhq9YevnYDkGfWQXu6gtANNKqwy7pTsL9VBbvTqTudutOpO52606k7nbrTqTudutOpO52606k7nbrTqXdXot6t6c5LTG56/7fFX6zV1btc+y7Xvsu173Ltu1z7LvGkSzz5JhJPulz7LgOly0DpMlC6DJQuA6XLQOkyUL7FDJQu175TeTqV55tReTpNp9N0Ok2n03Q6TafTdDpNp9N0viFNp8u173Ltu1z7LhWgy7Xv8gK6vIAuL6DLC+jyArq8gC4voMsL6PICuryALi+gywv4g+QFdLn2nYLd5dp3OnWnU3c6dadTdzp1p1N3OnWnU3c6dadTdzp1p1Pfrlz7d58imqcOTqK4JfEbSXKgLsduUMFNY32c8J6EF6ysYJvg0NkgaF5eCIwNccN/DjD8R17m/MOjf2y6tQ4PS1c29AemxWzgFUwb4qNvHALU72H4EE/GLCBynYqMq4plRR0BT0O6ZCrSL4Z4GMmWoL6zig8gaM+Tyg9GB4eD0f5g/+Hp/giC9Eaj/4KbpKPkbz6UlKnKxNh/zHgene4fHh0+pPE0zvo5X5mInX4P1Luxd6rg4KNsAZ8DxIKxImAIs9FONBWe/d412qgOR6PAkceZ0YRM8DRONGMpzAX4WlnrvSIn+4ANU0J2p1Vf6B01TNJs9uDuw7N1QtTTspRlHeiCq83sIFrfLFjJMlA1FAzpQkiMxTdETWvja26dL6lgeOWYw+cDLATkKfrNoGpg/GwlHWMFxmcGYs53lUvadDfjSoG9zvl1LZCBbhuk33ow43VpGydPTNKDWehWYkslMcQ0+r9ESm1QZsKnyznpiJd4H0rpWfoCXOTvLNFRfLjZ9iQ+CAiMoENicK+KEom5FyQ54OGkwGahrWQfceiOoznPeclS2uNa00XyDiGp+DgGfQwon17r7YfK3cD2sptfNV+ewnwuF6RI0xdljKQ32SiNbTkALqk5gVh4BErh5QUv6SvDW3hG/JNxuI5GwYGYyWWefC6KwxEmRy7LmGOeAn6RX4nwzd4tSerkiVFAp7wefcsM8nVe/hey+hGmXG/wNUhoM17mA5WcD+alXBYDHZlKeW09r0HGq4VMTAtiUnjGK54rwqZ5+x7Z5VHvamANCgNWiME5Xw200IiCNjDWl7xUCHGDVnrzXmg89iUzruAL7vjqN/Q4IcCXGvSOwCoVL8g6tegd9fYuDvao4733+N/xOV9dg+aNd5XmtSzT3lFvUVWFOtrbY4UYatl2KCT2rkAbhcBaaH1ciH/w1fES+n+L8/sF/nGA/3Iao8hOJ800qCOrGT5o+ieoXcRiMMXDAdFnA+SPVF5iX3EqeF49Ljka61hKR1ae8/yNP41ltXDmsUef3MOWaMaUBQ6ODos7qfpm4ENUBqBjzhI0TOhTcmV2H48iEAQTRi6T1dNawF4XXE0SUyD3jOcLlsc8iY5PDPwPxUaL38hQtmB5Qt67dloSCHdCpz4FBDpYwFrGZ2XszjeWJcRsmx/ATDNfgmYwlhe8LEWC8/nXkpcrR1eoL66MsTXTGty1kR7rRZgX1eAQT6eRsPDzPCt4ycAE0jsaDb/HLLMx7pTqHe2PRiOYTDEu4NcfkPpU5cqfGvRj9Q/SCqATaImU8wHsIkazj6csPpez2TiznUNL9+mDET42j2YsxgDoA5iSIwi7K9fAvPJxrd4S3d6YZ1pH1VtKV3o5mTcL0m/ZyD5RrtuuUfe3L/XG1cZ3zmnpNw+Vn+4A9K6dGEBNXDevbwnYXeHeX69w93ugIY5LfiH4JYzPUUFb40bIn5l0ubthu6+evj6Njl+eRBdtemx+U8YZG7GoKpm1r6GxVqc1AMPBzbzk0wGh8zkCEzjc4EiAADAToOeDhwA8aCV9gFXRJMyBgIX9FUgtz5NCirz62wRdITBm84gSHOSySnWmrvablkIuVaSWU8U1+JuxUMHbNuc50j+TBaJEm5aY5zbVXeTVUqB/mxIyyM4YqYrlCSsTXENwSbs+F3APwDC1mcNN2r9//+Lg/v0heVWciU101+DbXAheAhUWMXP67Wu3Ldj1yhjSWmBAi1Wx4LjEUfSjLCMtmvejyZ4m6XtH8MdSAfffM3RaTcgLWh+4A30ZwMumfpm91meyZqpmV2KZ7aV8ztI9bDqQs4E+wHsoWKVyjofNlywSGauh24XI5qbLMThmMlaeDwtUL1hanfKrqj6oPRTpElaef0zv41TMF9Wmb6A1gHx1PGMCvjDjPAFe8L+d3vFaF1JVGcsdBveG7BssxNvf18oEysi6LSkddJoxMRaDGioJbh0xWxEFFYqSxuc6OKBmfP2IclIpWkOmYEgU8xw3uG9REf3EKvBioc+o5sN9PEkS+TBdbkOz8Cy/Af+/uTeVjPiFTC/qMAEniAhEhQjMUX20xOdzxIOg2AGG8QyraMpjmfHa1tcHM4/IofGaAdd4nxCBFJkdgW/8c0lr05wREiNZVCIDTwAv0WCWx5xmanV9a4CF5lMODsBIlnOWW2NrXEqFm1KakI9YqpWqeOZFEQA/3StSJtAij2fzvRbD3/aQuFrN48iK4mBCW0hVQZv372GSb8r0+hoeaznr7TsQ+ClnmjAGhNKUHT0UGw7Z3Vfa1ncvcnA0wP2ldTODS6rNcsN1kzHycL5ytI9eX+sp9WTQ6q3l5JsN1RB09Gxn7Bw4zRTURj6bgaxQyTrMw9UqNaV3IpR4jDCtkg4h8IS106Lha6l9ANZYuazcGYLY9QXmkIk0FR89kcFz7KY5H2r7mEY9OPUU17aJo37jOI55UW1s6+qhL49PH/+MXtxkhUYrmaBIyy7B+cUu6QDJwqol+Ox9L2X5fAlWh6MedQr/9/8BgBje5Q== +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"}},"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"}}}}} + body={{"required":true,"content":{"application/json":{"schema":{"description":"Request object for updating an existing agent. Omitted fields are preserved.\nNullable fields (description, tool_configurations, metadata, enabled, guardrails)\ncan be set to null to clear them.\n","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. Set to null to clear.","type":"string","nullable":true,"example":"An enhanced AI agent specialized in handling customer support inquiries."},"tool_configurations":{"description":"A map of tool configurations available to the agent. Set to null to clear all tools.\nIndividual map values set to null will delete that tool configuration.\n","type":"object","nullable":true,"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent. Set to null to clear all skills.\nIndividual map values set to null will delete that skill.\n","type":"object","nullable":true,"additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]}},"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":{"description":"Deprecated: prefer updating steps directly via the steps map.\nPartial update to the current first step. Can be combined with first_step_name\nonly if first_step_name equals first_step.name.\n","deprecated":true,"title":"UpdateFirstAgentStep","type":"object","properties":{"name":{"description":"Rename the first step. If omitted, the name is preserved.","type":"string"},"type":{"description":"Deprecated. Previously used as a discriminator.","type":"string","default":"conversational","deprecated":true},"instructions":{"description":"List of instructions that guide the agent's behavior. Set to null to clear all instructions.","type":"array","nullable":true,"items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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"]}]},"reminders":{"description":"Reminders injected into conversation messages. Set to null to clear all reminders.","type":"array","nullable":true,"items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]}},"next_steps":{"description":"Conditional transitions to other steps. Set to null to clear.","type":"array","nullable":true,"items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"Tool configuration names this step may invoke. Set to null to clear.","type":"array","nullable":true,"items":{"type":"string"}},"allowed_skills":{"description":"Skill names this step may use. Set to null to clear (allows all skills).","type":"array","nullable":true,"items":{"type":"string"}},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nSet to null to clear (re-enters at this step).\n","type":"string","nullable":true}}},"first_step_name":{"description":"Reassign the entry point to an existing step by name. This is the preferred way\nto change the entry point. The named step must exist in the steps map.\n","type":"string","minLength":1},"metadata":{"description":"Arbitrary metadata associated with the agent. Set to null to clear.","type":"object","nullable":true,"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. Set to null to reset to default (true).","type":"boolean","nullable":true,"example":true},"compaction":{"description":"Configuration for automatic context compaction. Set to null to clear.","nullable":true,"title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}},"nullable":true},"steps":{"description":"A map of additional named steps keyed by step name for partial update.\nOnly provided keys are modified; missing keys are preserved.\nSet a key's value to null to delete that step.\n","type":"object","nullable":true,"additionalProperties":{"nullable":true,"title":"UpdateAgentStep","description":"Agent step for partial updates. Omitted fields are preserved.\nNullable fields (instructions, reminders) can be set to null to clear them.\n","type":"object","properties":{"type":{"description":"Deprecated. Previously used as a discriminator.","type":"string","default":"conversational","deprecated":true},"instructions":{"description":"List of instructions that guide the agent's behavior. Set to null to clear all instructions.","type":"array","nullable":true,"items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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"]}]},"reminders":{"description":"Reminders injected into conversation messages. Set to null to clear all reminders.","type":"array","nullable":true,"items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]}},"next_steps":{"description":"Conditional transitions to other steps. Set to null to clear.","type":"array","nullable":true,"items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"Tool configuration names this step may invoke. Set to null to clear.","type":"array","nullable":true,"items":{"type":"string"}},"allowed_skills":{"description":"Skill names this step may use. Set to null to clear (allows all skills).","type":"array","nullable":true,"items":{"type":"string"}},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nSet to null to clear (re-enters at this step).\n","type":"string","nullable":true}}},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}]}}}},"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"}},"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"}}}}}} + 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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},"get_document_text":{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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 a static string (e.g. \"my-corpus\") or an EagerReference object (e.g. {\"$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"},{"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}]},"custom_dimensions":{"allOf":[{"description":"The custom dimensions as additional weights.","type":"object","nullable":true,"additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"}],"nullable":true,"default":null},"metadata_filter":{"description":"The filter to narrow search results. Can be either a static string (e.g. \"doc.department = 'engineering'\") or an EagerReference object (e.g. {\"$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"},{"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}]},"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,"default":0.025},"semantics":{"allOf":[{"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"}],"default":"default"},"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":{"allOf":[{"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"}],"nullable":true,"default":null},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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."},"instructions":{"type":"string","description":"Instructions for instruction-following rerankers that guide relevance scoring behavior. Only applicable to rerankers that support custom instructions."}},"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"}}},"generation":{"allOf":[{"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"}],"default":{"enabled":false}},"save_history":{"description":"Whether to save the query to history.","type":"boolean","default":false}},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]},"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. 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}]}},"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":"ephemeral","example":"ephemeral","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"default":{},"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"]},{"title":"InlineGetDocumentTextToolConfiguration","description":"A get document text tool configuration defined inline in the agent for fetching document text content from a corpus.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'get_document_text' for inline get document text tool configurations.","default":"get_document_text"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"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 get document text tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"document_id":{"description":"The document ID of the document to fetch text from.","type":"string","minLength":1,"example":"doc_12345"},"corpus_key":{"description":"The corpus key containing the document.","type":"string","minLength":1,"example":"my-corpus"}},"additionalProperties":false,"title":"GetDocumentTextParameters"},"tool_configuration":{"description":"User-configurable settings for the get document text tool. These parameters are never exposed to the agent.","type":"object","properties":{"metadata":{"type":"object","description":"Configuration for document metadata retrieval.","properties":{"include":{"type":"boolean","description":"Whether to include document metadata in the response. If false, metadata artifact will not be created.","default":true},"exclude_paths":{"type":"array","items":{"type":"string"},"description":"List of JSONPath expressions for metadata fields to exclude from the returned metadata.","default":[],"example":["$.internal.processedAt","$.debug"]}}}},"title":"GetDocumentTextConfiguration"}},"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"}}}},"skills":{"description":"A map of skills available to the agent, keyed by skill name.\nSkills provide specialized instructions that can be invoked during agent execution.\nThe skill list (name + description) is shown in the system message; content is loaded on invocation.\n","type":"object","additionalProperties":{"nullable":true,"title":"AgentSkill","description":"A skill that provides progressively disclosed instructions to an agent; it allows the agent to access more instructions without\nalways being within the system scope. Additionally, skills are explicitly loaded as an input event rather than normal text input event.\nSkills are defined at the agent level and can be filtered per step via allowed_skills.\nThe skill key and description are shown to the LLM in the system message;\nthe full content is sent as a user message when the skill is invoked via the invoke_skill tool.\n","type":"object","properties":{"description":{"description":"A brief description of what the skill does, shown to the agent in its instructions.","type":"string","maxLength":500,"example":"Reviews code for best practices, bugs, and security issues."},"content":{"description":"The full instruction content for this skill.\nThis is NOT shown in the instructions by default; it is loaded when the skill is invoked.\n","type":"string","maxLength":50000,"example":"When reviewing code, check for security vulnerabilities, performance issues, and adherence to best practices..."}},"required":["description","content"]},"example":{"code_review":{"description":"Reviews code for best practices and security issues.","content":"When reviewing code, focus on..."}}},"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":"FirstAgentStep","description":"The entry point step for an agent, with a unique name.\nSee AgentStep for full step documentation.\n","type":"object","properties":{"name":{"description":"Unique identifier for this step within the agent. Must not conflict with any key in the steps map.","type":"string","minLength":1,"maxLength":255,"default":"first_step","example":"classifier"},"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["name","instructions","output_parser"]},"first_step_name":{"description":"The name of the first step. Matches first_step.name.","type":"string","example":"classifier"},"steps":{"description":"A map of additional named steps keyed by step name.\nThe first_step can transition to steps defined here via next_steps.\n","type":"object","additionalProperties":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.\nThe step name comes from the map key in the agent's steps map.\n\nA step gets all previous session history in the agent session, including any prior agent steps,\nthen the agent decides what to do in this step based on the given instructions. Finally, the\nagent either stops working if there is no next step defined or continues to the first next step\nthat matches the condition.\n\nAn agent always executes steps serially. If parallel behavior is desired, giving the agent\nother agents as tools is usually the most correct approach.\n\nEach step can only use tools defined by its `allowed_tools` list; if this list is not specified\nthen all tools known to the agent are allowed.\n","type":"object","properties":{"type":{"description":"Deprecated. This field is ignored and exists only for backward compatibility.","type":"string","deprecated":true,"default":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step.\nIf omitted, the agent may behave oddly as it has no system instructions and\nwill just attempt to respond to user input and previous session history.\n","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference, defined inline, or using a Vectara built-in instruction.","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":{"description":"How to parse and format the agent's output.\nDetermines which event type is emitted.\nDefaults to 'default' parser if not specified.\n","allOf":[{"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"]}]}],"default":{"type":"default"}},"reminders":{"description":"Reminders injected into conversation messages when specific events occur. Useful for keeping the agent on-task during long conversations.","type":"array","items":{"title":"AgentStepReminder","description":"A reminder that is injected into the agent conversation when specific event types occur.","discriminator":{"propertyName":"type","mapping":{"templated":{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}}},"oneOf":[{"title":"TemplatedReminder","description":"A templated reminder with a Velocity template that is compiled at session start and injected into messages matching the specified hooks.","type":"object","properties":{"type":{"description":"The type of reminder.","type":"string","default":"templated","example":"templated"},"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"},"hooks":{"description":"Event types that trigger this reminder to be appended to the corresponding message.","type":"array","items":{"type":"string","enum":["input_message","tool_output"]},"minItems":1,"example":["tool_output"]}},"required":["type","template","hooks"],"x-vectaraParents":["AgentStepReminder"]}]},"default":[]},"next_steps":{"description":"Conditional transitions to other steps.\nEvaluated in order; first matching condition is selected.\nA next_step without a condition acts as a catch-all/default.\nIf no condition matches, the agent remains on the current step and the agent ends output.\n","type":"array","items":{"title":"NextStep","description":"A conditional transition to another step.","type":"object","properties":{"condition":{"description":"UserFn expression evaluating to boolean.\nUses the `get()` function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker for the UserFn language reference.\nOmit for catch-all/default routing.\n\nThe context available to `get()` has the following shape:\n```\n{\n \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\": {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\": \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\",\n \"tools\": {\n \"\": {\n \"outputs\": {\n \"latest\": { ... }\n }\n }\n },\n \"output\": { \"text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` — agent metadata fields\n- `$.session.metadata.` — session metadata fields\n- `$.tools..outputs.latest.` — latest tool output fields\n- `$.output.text` — LLM text output (when output_parser is `default`)\n- `$.output.` — LLM structured output fields (when output_parser is `structured`)\n","type":"string","example":"get('$.output.intent') == 'sales'"},"step_name":{"description":"Name of the step to transition to.\nMust reference a step defined in the agent's steps list.\n","type":"string","example":"sales_handler"}},"required":["step_name"]}},"allowed_tools":{"description":"List of tool configuration names that this step is allowed to use.\nIf not specified (null), all tools defined in the agent's tool_configurations are allowed.\nIf set to an empty array, no tools are allowed and the agent can only respond with text.\nTool names must reference keys in the agent's tool_configurations map.\n","type":"array","items":{"type":"string"},"example":["customer_search","web_search"]},"allowed_skills":{"description":"List of skill names that this step is allowed to use.\nIf not specified (null), all skills defined in the agent's skills map are allowed.\nIf set to an empty array, no skills are available and the invoke_skill tool is not shown.\n","type":"array","items":{"type":"string"},"example":["code_review","debugging"]},"reentry_step":{"description":"Step name to resume at when the session receives the next user message.\nIf not specified, the session re-enters at this step (i.e., stays here).\nSet to the agent's first_step_name to always restart from the beginning.\n","type":"string","example":"classifier"}},"required":["instructions","output_parser"]},"example":{"sales_handler":{"instructions":[{"type":"inline","template":"Handle sales inquiries"}],"output_parser":{"type":"default"}},"support_handler":{"instructions":[{"type":"inline","template":"Handle support requests"}],"output_parser":{"type":"default"}}}},"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},"compaction":{"description":"Configuration for automatic context compaction when the session approaches context limits.","title":"CompactionConfig","type":"object","properties":{"enabled":{"description":"Enable automatic context compaction.","type":"boolean","default":true,"example":true},"threshold_percent":{"description":"Context usage % (50-95) at which compaction is applied.","type":"integer","minimum":50,"maximum":95,"default":80,"example":80},"keep_recent_inputs":{"description":"Number of recent inputs to keep verbatim (not compacted).","type":"integer","minimum":1,"default":3,"example":3},"compaction_message":{"description":"Custom additional instructions for the compaction summarization prompt.","type":"string","maxLength":10000},"tool_event_policy":{"description":"How tool events are included in the compaction input.","type":"string","enum":["exclude","include_outputs","include_all"],"default":"include_outputs"}}},"tool_output_offloading":{"title":"ToolOutputOffloadingConfiguration","description":"Configuration for offloading large tool outputs to artifacts.\nWhen tools produce outputs exceeding the size threshold, the output is stored\nas an artifact and replaced with a compact reference. The agent can then use\nartifact_read or artifact_grep to access the full content on demand.\nAll fields are optional; omitted fields use model-inferred defaults.\n","type":"object","properties":{"enabled":{"description":"Whether tool output offloading is enabled. If not specified, defaults to true\nwhen the agent has artifact_read configured, false otherwise.\n","type":"boolean","example":true},"context_percentage":{"description":"Percentage of the model's context window to use as the offloading threshold,\nestimated at 4 characters per token. This is a rough heuristic that varies\nacross LLMs. The resulting byte threshold is clamped between min_threshold_bytes\nand max_threshold_bytes, so this percentage only has an effect when it produces\na value lower than max_threshold_bytes.\n","type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.05,"example":0.05},"max_threshold_bytes":{"description":"Tool outputs above this size (in bytes) will always be offloaded. Acts as a\nceiling on the context_percentage-derived threshold. For large-context models,\nmax_threshold_bytes is typically the effective threshold since the\ncontext_percentage calculation exceeds it.\n","type":"integer","format":"int64","minimum":1024,"example":32768},"min_threshold_bytes":{"description":"Tool outputs below this size (in bytes) will never be offloaded. Acts as a\nfloor on the context_percentage-derived threshold, ensuring small outputs are\nnever offloaded even for models with small context windows.\n","type":"integer","format":"int64","minimum":1024,"example":4096}}},"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 5c3df531b..9e5052ed7 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 4868ccc67..5da0b4f2b 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: eJztWm1v27oV/isEMWBbJ9tdt0/GMMxLe3GD7aJBmm4Y0iChxWOLNxTJS1J2jMD/fTgkJVG2nDTtffnSfIqlw/P+8pDUI/Vs7ej8mi6MkaJkXmhFzqQA5R29KejDxDXGaOuBT5gRk3vYTfzOAC65AOu0YhLpOLjSCoPL6Zx+NJx5IL4CUmq1EuvGRs7aEgfeC7V2RK8IUwQehMPfhGUKlEGBKS2oNhCXnnM6p03guzAmakgLaphlNXiwaMQjFSi9AsbB0oIqVgOd00v4qQHnJ1eiBt3gqqG2VxWQxcU52QopSc3ugTCyBOcJrFbaeuI1KXVtJCSTbORHhAo/nYFSrARw4qDUiju00osaiG6CDa6soGZ0/kij56hQHtZBw1ooUTc1nf95X1DkKyxwOl8x6WBffJ49kx+ElML9cmbVgf/X2IamJOWZMbcxvLeC0yJaaJivRvXHRZgoC2NSVqLQ3lHeNjCihPNWqDXd728iMTj/T813SFFq5TF15o80y7jZjw5lPmashsokn6PTYhIOcvf9ovHVSAb/3hFjMYW9AIeaJ/308kcoQ/p2b49EHmoQ3AHbzBUkI8iYt8YXlBlxa7UcYd5xC68J856VFXA0D2OfuZtcVeAg0YVUsmAkK1N1N9aiJuF1pgOzlu0wuh7qEemXgZuvmCeMNA4sphVT6MHkOVIyRTwm7ZhtBQWFmXVN9VaFZGMc0815y7zG30vMWbW+PXxeamsad+oxhw1IjAhyXGOOHhLGpxsB24zoeBnahOEVBqRQcMSme5E43RTUCy/RxIUR6B6633dqPRPDSBViQJhzYq1qbN9t6E4GLVv3gtidhVWT1B7KQ7HPZ3ky6h524ybdww5LPg6PoKGvRGselhimjh5NeKQZZ5ppCZyssIsh086KKOlLMq3LBeACn9zsB638Orc3aZhFO3qzC3jMnmfiHYheHu5+2QuivcBFXxHsaNDJWJ+/bUMdtfsVIh0ETT+pV+RupMTvyIR810hJsqdiA4SVJTjX9seorFClbDj2fw4SQttnig8RTy4oZgpKuATGJ1rJXcYX3ybGAw4FceCc0MoVBDYY6YII5bxtSh+folCvtXS5sK4nobwzpkituVjtxiWUFpiHWc0UW0MmL426wDyIyQXn0rDfoaB/i1p44JlZiAcsKz3ZCl9lzlvuolR0XyswiHCggk+FMg1m9RlTSvuT7sHJkUxrkeX0k3qijr++rx9VeJ/kxwUeCijV975//HGIZBO8QJrA2xmtXKygN69fjyf6EBN9Ia5ZqJPg5cDPjUvlxBpfgfKJ+PkWIPi4/v+B0jPLckBz/ha7mHDYF4QjGPcgljc2bBFaZVdSb6eEfK+3sAFbhLQ6fxtpMc8ShO0kXJyPdXbDvAerEiid/ul32FgiTB3Tt2pqpiYWGGdL2UNTfxSKo2b1JK572//6THY9fB7Vs2x92fsjcM1c9wRXB6UF/yTnSBK5CxX2GAlkuynBKdRSuEo3kpMlznQT1jUWvgSpBhHPIdVv6PNXRZ/P4EDXj94vidE3lPlbocynEd9XhvUbnPwGJ7/ByZ8JTsaxabQU5Ug9/DfMt+hbwoixQpXCMJnPtgFKMpL5lbb181V4GiMNQFEa2uMDX0q9BX7bne+ONIv33bs0rC2QtA7jPZBB3rGyIh03UrMdiRWBC0gJ1jOhiAWnG1tCxjHKXEaerKMgeCaJGdc92DDZAKmZmZLzaGF8gkC1kTKg0OjRXg3hOo1DOe86dmNeZpwLXMbkxelzQXoRAo6qRdt6FxKxikY3DlN+eIr7lOCDJotsb5na3bZrjpU4Xw2syQ2NPTLzQiZxqbUEpsJZ74o10scj3CwhugiN5ENQN1b+PezCDcIgXKFDMCKF8+F2ISnUsZySxUF8nWfWu8gShK/AkqXmuyK8LbAZiBr3RcLjWnyFz8LS3PRsz9HHPjLCHsRUx2bosewXvu/zOuHplyTJqQF8eCR+1G2Ooz3Eg10ZxsSjRxxCOxgt6SGjbn3+tL3KiYr99fVfRhIebC1SS+c67Apj5od5EjP9CI986X6YrEGBZZKAtdqSdiseUwTP/MPjUnMIoa3BObb+jKJKhCc2OO3bthuhUdsq5kKUqMtwjsefwlqtVxO3san1wPDGBwsYB6likjiwG7BRypS2sQV3eoPZo6z2yig0U5wrS4jbQq9JBdJ0syVdIhIOywYtY55scfZurVbrkQGRpcg7VCykxx6vI1dg1cTx+8na6sZM+lul9tJyQFSDrzRvqSL+CG7woFycOtePNODJ01edBQ2NfnjliVda7boxnbpFuW6ji3Id+1VJV7zBigTxmqys4sFFRed0tnkz66/T3OxxcLe2x9u5ENtoZGMl3iV6b9x8NmNGTDcxOFOhg5iwPRd+F6gXRvwLdnhiQOfXwdhwfPAm/MqIP2AdxaxuCbqWo1l4cHivF+kyTJeShBYUDyfi7i1YcWaB40kTkzG99T2oj0MzGl9ldsyiyFmgDLeT2gTlYvbkRvUNMzxsbyIP71of2lQIOYnd47K/T3zXVtNhlXT1lp1rtHu7m8ON9fVws9ovjpuStAydPti3XQ92Q0erxnDp/maPZq503izaEr189+Eq4KnNccjad+E6cyOw9xFvWTuIAipfp7EXhiNigC0sJ0uG3SBrwIim/6eb0CxWAmejlNhNdGOjAObJ3XiSYrr/DaMBihstlP/7HWkPh9pHLkA63Xg83uDtVfaGWaEbR1yzdJAQcehgODUuzsklrMCCKsPBVbfxSuAwbvy8xt4mlG9E3MApBDphCjFEEYozy4MPV40kcVeDh12f1Cc1CWq21zBYkAkavnq1efPq1RQp7nLD7hJrRAiVAMtsWYmSZXyLBPFw4tqSuahQtTMVBBcT8p22JHX7gtzNMMO0ZbN5n2ozrssm7Onv4hYnaUbn9M309fQ1dmWwtXu/+gB2IxAFdnXXRqXU9UzCmslZIJ3o1cRF4lloxFKvQ7INmw/XpZvmLES9blnebrXlNbP3UxMrSPorePB9otIwBjiz91/D/VaKdeWfkoEAgpUBQEDNBEpYAfAlK+//kXEPfcFo52um+r1R+wUMUxksOSyr7GOEn/GLmdTWPDz4mZFMKDQmeOgxDY5rGko8Gx20oPPhhxk3Ba2080j8+IhV/NHK/R4f/9SAxRlxg7PKCjwLD82IC4f/t1+vPGHrHy4TePwjOf2Nx6gZbctWu2xS0iLN1KEFodmldv4y/X7p74FGTYsmHH+q1FmJM/g3sOGpj38+35D+G6WBPZH2LGo9uRqArWPY3q9YlCUY/yRtjpsuFldn3+OxfPoGqNYcF1m2xXnJtjGJtOnOIcKzRyqZWjcIpOc0MsW//wOhQeCZ 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-corpus-document.api.mdx b/www/docs/rest-api/update-corpus-document.api.mdx index 4338cb4f7..0fd09c8b5 100644 --- a/www/docs/rest-api/update-corpus-document.api.mdx +++ b/www/docs/rest-api/update-corpus-document.api.mdx @@ -5,7 +5,7 @@ description: "Updates document identified by its unique `document_id` from a spe sidebar_label: "Update document, merging the metadata." 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 @@ -62,7 +62,7 @@ Updates document identified by its unique `document_id` from a specific corpus. diff --git a/www/docs/rest-api/update-instruction.api.mdx b/www/docs/rest-api/update-instruction.api.mdx index 8a2efd049..008d6a176 100644 --- a/www/docs/rest-api/update-instruction.api.mdx +++ b/www/docs/rest-api/update-instruction.api.mdx @@ -1,11 +1,11 @@ --- 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 -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 @@ -36,7 +36,7 @@ import Heading from "@theme/Heading"; -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. +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. ::info Version Management Agents referencing a specific version continue to use it until updated. Agents without a pinned version always use the latest. diff --git a/www/docs/rest-api/update-llm.api.mdx b/www/docs/rest-api/update-llm.api.mdx index 86dbcc5b3..0d239039b 100644 --- a/www/docs/rest-api/update-llm.api.mdx +++ b/www/docs/rest-api/update-llm.api.mdx @@ -5,7 +5,7 @@ description: "Update an existing LLM's configuration. This endpoint allows parti sidebar_label: "Update an LLM" 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 @@ -73,7 +73,7 @@ Built-in LLMs (system-provided models) cannot be updated. @@ -81,7 +81,7 @@ Built-in LLMs (system-provided models) cannot be updated. diff --git a/www/docs/rest-api/update-tool.api.mdx b/www/docs/rest-api/update-tool.api.mdx index 6fd234dcf..5b5cd9fcd 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: 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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 an existing tool’s configuration, including its metadata, enabled statu dict:\n return {\"result\": value * 2}\n"},"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":["type"],"x-vectaraParents":["UpdateToolRequest"],"title":"UpdateLambdaToolRequest"}}},"oneOf":[{"description":"Request object for updating an existing MCP tool.","type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"enabled":{"description":"Whether the tool is enabled.","type":"boolean"}},"required":["type"],"x-vectaraParents":["UpdateToolRequest"],"title":"UpdateMcpToolRequest"},{"description":"Request to update a lambda tool, allowing modifications to code, configuration, and metadata.\n\nWhen code is updated, input and output schemas are automatically re-discovered from function parameter type annotations.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"enabled":{"description":"Whether the tool should be enabled or disabled.","type":"boolean","example":true},"title":{"description":"Updated user-friendly display name for the tool.","type":"string","minLength":1,"maxLength":255,"example":"Updated Calculator Tool"},"description":{"description":"Updated description of what the tool does.","type":"string","example":"An updated tool that performs advanced calculations"},"code":{"description":"Updated code for the lambda function. Use function parameter type annotations for automatic schema discovery.\n","type":"string","minLength":1,"example":"def process(value: float) -> dict:\n return {\"result\": value * 2}\n"},"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":["type"],"x-vectaraParents":["UpdateToolRequest"],"title":"UpdateLambdaToolRequest"}],"title":"UpdateToolRequest"}}}}} + body={{"required":true,"content":{"application/json":{"schema":{"description":"Request to update a tool. Supports updating MCP and Python lambda tools.","discriminator":{"propertyName":"type","mapping":{"mcp":{"description":"Request object for updating an existing MCP tool.","type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"enabled":{"description":"Whether the tool is enabled.","type":"boolean"}},"required":["type"],"x-vectaraParents":["UpdateToolRequest"],"title":"UpdateMcpToolRequest"},"lambda":{"description":"Request to update a lambda tool, allowing modifications to code, configuration, and metadata.\n\nWhen code is updated, input and output schemas are automatically re-discovered from function parameter type annotations.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"enabled":{"description":"Whether the tool should be enabled or disabled.","type":"boolean","example":true},"title":{"description":"Updated user-friendly display name for the tool.","type":"string","minLength":1,"maxLength":255,"example":"Updated Calculator Tool"},"description":{"description":"Updated description of what the tool does.","type":"string","example":"An updated tool that performs advanced calculations"},"code":{"description":"Updated code for the lambda function. Use function parameter type annotations for automatic schema discovery.\nObject parameters must use `TypedDict`; bare `dict` and `Dict[K, V]` parameters are rejected.\nSee the `code` field on `CreateLambdaToolRequest` for full details and examples.\n","type":"string","minLength":1,"example":"def process(value: float) -> dict:\n return {\"result\": value * 2}\n"},"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":["type"],"x-vectaraParents":["UpdateToolRequest"],"title":"UpdateLambdaToolRequest"}}},"oneOf":[{"description":"Request object for updating an existing MCP tool.","type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"enabled":{"description":"Whether the tool is enabled.","type":"boolean"}},"required":["type"],"x-vectaraParents":["UpdateToolRequest"],"title":"UpdateMcpToolRequest"},{"description":"Request to update a lambda tool, allowing modifications to code, configuration, and metadata.\n\nWhen code is updated, input and output schemas are automatically re-discovered from function parameter type annotations.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"enabled":{"description":"Whether the tool should be enabled or disabled.","type":"boolean","example":true},"title":{"description":"Updated user-friendly display name for the tool.","type":"string","minLength":1,"maxLength":255,"example":"Updated Calculator Tool"},"description":{"description":"Updated description of what the tool does.","type":"string","example":"An updated tool that performs advanced calculations"},"code":{"description":"Updated code for the lambda function. Use function parameter type annotations for automatic schema discovery.\nObject parameters must use `TypedDict`; bare `dict` and `Dict[K, V]` parameters are rejected.\nSee the `code` field on `CreateLambdaToolRequest` for full details and examples.\n","type":"string","minLength":1,"example":"def process(value: float) -> dict:\n return {\"result\": value * 2}\n"},"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":["type"],"x-vectaraParents":["UpdateToolRequest"],"title":"UpdateLambdaToolRequest"}],"title":"UpdateToolRequest"}}}}} > @@ -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","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"}}}}}} + 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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},"get_document_text":{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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\n**Docstring Parameter Descriptions:**\n- Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, and Epydoc styles are supported)\n- Parameter descriptions are extracted and included in the input schema\n- This gives agents better context about how to use each parameter\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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"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"},{"description":"A tool that fetches the full text content of a document from a corpus and stores it as an artifact.","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},"category":{"description":"Functional category of the tool (e.g., retrieval, artifacts, indexing, utilities, orchestration).","type":"string"},"lineage":{"description":"The base tool name without version suffix. Groups versioned variants of the same tool together.","type":"string","example":"corpora_search"},"version":{"description":"Date-based version identifier in YYYY-MM-DD format. Null for unversioned tools.","type":"string","example":"2026-02-23"},"tool_groups":{"description":"Groups this tool belongs to. Tools in the same group form a functional set and should be added or removed together by default.","type":"array","items":{"type":"string"},"example":["document_ingestion"]},"permissions":{"description":"The permissions granted to the agent's service account when this tool is added to an agent.","type":"object","properties":{"corpora_query":{"description":"When true, the tool grants query permissions on corpora specified in its configuration.","type":"boolean"},"corpora_index":{"description":"When true, the tool grants index permissions on corpora specified in its configuration.","type":"boolean"},"corpus_developer":{"description":"When true, the tool grants corpus developer permissions, allowing the agent to list available corpora.","type":"boolean"}},"title":"ToolPermissions"}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `get_document_text`.","type":"string","default":"get_document_text","example":"get_document_text"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"GetDocumentTextTool"}],"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 fd48fb901..1553e09f0 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: eJztWltvG7kV/ivEvLRNdUnTfRKKom4uqNE2CRyni8Ix7CPySMM1h5wlOZIFQ/99cUjODCWN5dhJdlsgfrJmyHO/fIecu8LD0hWzi+KjQ+uKy1FxO3ZNXRvrUYyhluMb3Iz9pkZa9B6tMxoUrRPouJW1l0YXs+JjLcAjE+hBKsdgbhrPgDUOLXMNLxk4Zo1CpqFCNylGhanRAu0+FcWsaMJ+EqIYFTVYqNCTQLOLu0ISgxJBhJdEoJgVZ/hzg86Pz2WFpvHFvkDnJbKT96dsLZViFdwgAzZH5xkuFsZ65g3jpqoVemS+RGYjPSZ1+Olq5HIhUTCH3GjhmLHMywqZaTyJ73iJFRSzuyIap5Da4zJIWEktq6YqZn/ajgqiKy2KYrYA5XA7+jx9xv+WSkn37dSqAv0v0Y1UScKTm8O/o6hcDb48EP1D4u2CJCEyTl+RwNH3E/bWBKHBdwuIJqsa59kcWY2Wo/YMNTcCBQnaG9fbBgcEd95KvSy228u4GJ3/uxEbWsGN9qg9/Qt1rSQPwTj9yZGwdxmpXS2Sn3q5GWiGt9J5qZdB6N85VluKbk+6GkuCV9I5aXQI/CSamf+EnOK2X0zcUMNckUb7jE+1IBnRsXWJvkRLIsTVxERIF/5tTZdxmhujEHSxHRVQyytKQ3dInyJL45rxxnlToR0rXKHKkpaZxRB1sBY25HiP1QDZM+IWvZrKgbFkMqhrxpUkh3LQzFMoG53RTa4bFagp3i4Ks9YhBEFQEDpvwRv6PadI1sur/efc2Lpx9z0WpB0ZniguUfuDhfHpSuI6W3S4jXSieuilVyT3SS1J52K77XjdY/G3ZO2wYpzykkdzg3NyqSvU3rEF5eajrf7yONmHwzBJfoOb4Ui5wU0bD3Ep86VMJT6kEzndHLqTKiJZZ5BoJiWKpLl0rNMicnpKjHReRCHpyeV2pzRf5PomCTOXRmt2Xo1+P+LUsOCr+/TkKNWHXRrFvtejp69ah4aFv4Y/A6PJJ/2MXQ+k4DUbszeNUix7KlfIgHN0JE0mrNRcNYIqsECFJAIDLRg3eiGXTcQZOaMYD8ThDEGMjVabjC69TYR3KIyYw1jHRwxX5MoRk9p523AfnxJTb4xyObOuZhC/l6BZZYRcbIY5cIvgcVqBhiVm/FKzCcQDm5xxzo2Cihj9S1bSo8jUoi5ugXu2lr7MjDffRK5kvpZhYOFQB5tKXTfeTUh2bfy95qHKnlRz6IkcCXYkW79C3d3P4z7ID9M4JFCXxTvhOhS92ZN7Wl+HLnoeHzscm4BCsd1GGV1ttIuZ+OL58+HCEfojLDwmQyZQMglt60lw5STR5Nw0OnkenDNcAgVHbc1CKmRSL4ytoEucR0EWOYBWyID/Qe7BAlWWeypeFxE1eI9WByhpryZ/pLqCFUg1TDm8YiCEpdB+iHhUrZglittRj1cHqXfI8zhhEvERYK3FvNIl1CYy2CaG4dpXjNFRESuLuAJ/SOvHEnUv4hpcqkPiqD0p1Mc0OASbhsg/Qj7BvxQ7m8BFgfOptD2C1QMo9juC/bUQ7AMw8zt6/X9Dr8cx5nfk+h25fkeuvzlypfZXGyX5QD78GNpUtC0DVlupuaxB5S0qGLAFZ7UCT1324Sy8HzAFsJRSkA4nSfzBhAOlzBrFVXf2O1As3nXvUs+1yNI+8vcOD/YaeMk6aqyCDYsZQRsYR+tBambRmcZyzChGnvNIE7oVjE4uKeK6BytQDbIK6gk7jRrGJ9Ix3Sg1okfRor0Y0nUSh3TedOSGrAxCSNoG6v2OvXfN8j44nESLuvUmZHIRlW4chfzuMe8xxntFlshegd5ctXsGYO1iR5tc0bYzdHINIFoCtAtolI/ntVlAdB4aiIcgbsz8G9wEELfjrlAhgCnpPL1rBepITtjJnn+dB+tdJIkywPO5EZtReDuiYiArGrGkp730Khzj0tZcddov930fCVENAt2R2bVY9ove93GdTqgfEyT3NeD9CfWg2hx6excBdmkYA684oJDO+wdSepdQtz8bkqkARpl+eP7ngVjvp08mDKPKHYM+tJI2yFsM8uTJeIkaLSiG1hrL2gk9zcg6Paa7huDOCp2D5WckUlp4z3DSvm0rEGmzLqP/I0fDeWPtzjx06N5kyURtqFPdAl0DhVmURmtQzKFdoY1cJkXrT3T+6r4JvkdW7T1SKKDUS+bBAYQZWImq7vpJujxkAucNaQaeranfrq3Ry+NnJ69JsC4ufjgUieImRMPCNFp8ge9fJ4/7xhK+W8fxNOmY1Q4mDLrAMdzwPP0o5PQVGY0IzbGX/qA/5qHzVNf/7/n1rfFvSOXev1u6Zl6g1WMnbsZLa5p6nF0l0rVn9r5CXxrRLQhwMkS4R+0iiLi4K8J4cP/t9agIfXv3FpuuMNt9Q+J0m5JYg+tz8bINUUy6eIwL4rUoL+NpV1nMiunqxTTQnd61R05bun0NaRqVaqyiu2LvazebTqGWk1X0x0SaQNshb6z0m7D6pJb/xM1JQ9QvgnLv6MeL8Ctb/IHSIkZZu6CLNwPhwf7lbVyXQfIUF3RGo8w6Tt3hMOSlRYHaS1AxXM0N6o+7ajS+zPSYRpbTsDLcPps6CBcDJVeqz4rwsL1u3r9Lv21dH8KQisFZf/f7ui2M2V1rvD3OjpXaWfxy/wTkYvdwoa+3cZZM28jYO3P2xc4Qe7BraJzYHnxj0dcJOq7Na0GbpGevP5wHdLw69GD7LtxOryR1NeYttLAizFjLBGIC1CFEt8b5eA5UD7LySrPRf00TysVCEtJRiuqJaWxkAJ5dD8cshfxfyDmoRW2k9n+9Zu0nDe0jFwC6abySVJwTwlqBlaZxzDVzh2m+CTVMurD7DBdoUXOaPHk3RieoH8d4b6i6Se0bGcdxTbA1AAsgTKgFWBFsuGgUizNqY3HySX/SYxZPFq2lokf5mYD+s2erF8+eTWjFda7YdSJNeK+UaMHyUnLI6I4SYCf8ZDm4KFC5qUsMJmbsjbEs9fERu55S4BkL01kfgVNheBOOZq7jwJokK2bFi8nzyXOqy2gr927xAe1KEqbv0rD1CjfVVOES1DQsHZvF2MXF01CHlVmGYNutRcJwN8lJyGrZkrxaGysqsDeTOkQ5KH+Ot74P1CI0AAH25kuoXym5LP0xHgQPgAd4kG4TigWimAO/+VtGPZSJ2jhfge4n3fabpnjou59P2QckT/j4KZUxj7d+WiuQ4bQ/mOAudYeLIuRw2w5n3ZXF5agojfO04u6OcvOjVdstPf65QUuN4JK6kJVU20Llae8Y0idIRxT5/VkC+H9g3+BrnUGl24KuN1nzLEapzXZaby+3o7bOP06nb/0h2KBWUfrDb9Q6Bak5/wY6HPvq6/MV6T9O29Enrn0ZpR6f76CuQ3je7zjhHGt/dG2Oot6fnL/8B92apA+5KiNok4U1NVRYx/gxdXe+FJ7dFQr0siHEPCsiUfr7BdjCf5w= +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/docs/rest-api/upload-file.api.mdx b/www/docs/rest-api/upload-file.api.mdx index eb353cfa4..d0009f608 100644 --- a/www/docs/rest-api/upload-file.api.mdx +++ b/www/docs/rest-api/upload-file.api.mdx @@ -5,7 +5,7 @@ description: "Upload a file to a corpus for automatic text extraction, chunking, sidebar_label: "Upload a file to the corpus" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztPWtzGzeSfwU12atYXj4kWc5umPPV0rIcK7FsWZLzWNFFgTMgidUMMAEwkmiX/vtWdwPzIIeUHG/qclf6YoszeDS6G/0G5lPk+MxGg/PofZ5qnkQfOtFN1xZ5ro0TSZfnsnspFl23yAW0OlSJuDkV5krGIupEx8JYrXgK3RJhYyNzJ7WKBn44xtlUpoI5zTiLtckLy6baMF44nXEnY+bEjWPixhkeQ88Oi+eFupRq1mFcJUzCfFLNeuxsLi0TKsm1VI5JyxJh5UyJBAcslHWmiF1hRMISHReZUM6y67kwgi10wa65cuwnETtuOIAz5ypJBcu5sVLNcIyFLnrsgMdzViDwMDQAH3PFJoIVOfR7/Hhnmx09f/y4N1IjdRoQ5Ze5yIVlUsVpkYjBSHXZETeXib5W7NFFL0sutuDZ8YuX/SE8yJMpPXmbC/V2OpWxqMH+6KKnE0cNjmRstNVTx37WJoFXiY4vOgz/v1luc6yvhTlGPMEsucOWee58y+OUS0WYf3TRczd+kldnR6/hwdxlKT15/Qs9SW/Ck5Ozl/DAOA/5wfH75/BA5MXEP8m4TBEdlj06ebnP/r67u8UYA3QNBgOlnRipl9owKzLZbaWam3PHjPitkEawTBvBYq2c0SnTV8KwqRRpYpk2LBOOJ9zxDiusYG4u2Pnjx/tGcCfYPnHbCz8qGx4fPn784VE/0bHtG2Ed8HY/xsZdYs1uAGGLSWWd4EkPYQbQv/qKDZNEAo/yFNgl4475fcLc3OhiNi/561DNhHXQ7XCK3KeESIB7JL5gvDZSxTfaMFgMs7owsbAd7AnMFxanc6G69BYW2pwNFjd3LreDfn8m3byY9GKd9a+oUfi/SxBsseOFm2vFpoZn4lqbyx47LNdjAd9KxE4b2q7XYmKlA5BOTk/ZVIjEdtj+6U8dtq/VNC2EikWHvSomp7l2Heblwxt93WE/SMM77I2mzX2a8viyw45EIvnP8lJ22PfSvSomHXY650Ygz3bY2bV0Tpj+Lx32qy7OiokgYQCs0PN8FPMChhypJhZAMORGX0nYvdwyrhpYEzc8y1NBosUypR3TsO8kT9MFK8Veg+xHRepkzo1Dqnvug3dNiSRuchE7yzi7yEKPPvToAlEvkJ8BwGvp5kjNqU5TfY3CB4fE+brs8ePA1Y8fs0c6Jz7ZGrAfTt++KTkeJapzIKycxuFAktV2UQ92HGMHtOABuwg9n30aRZdiMYoGo+iKp4UYRbcXNHEQvWPrDHditliCYJ92oWVzfR1kNvA1CBJpSXKLxM/8Qkx5kcJu1swK5YBHuhMOMIZ52COtBP1iuTBls60V4D+NItgjCHRoNV4BF1bSq/dE5s34DYvnHIE15dxLg2b8ZgyNbNuonfr7XBhqM4oGT3d2A+4cn6RiXCmycazVVM6WMHigoJmtKTymp8zRw6nRWcWDdclgi3gO3Hz84qVtw40fbkwDjaIBc6YQATQYCODwEjXZGrAz4D+vmEnZ9aq2imdt7UHf1uU0O3zRYTYXsZxKkSBfg1YJI9OwxNu4aYe0h2CRbi4scizPhBPGdrCbFeZKGOt3EuPsiqcyYT/8fMbO9KVQzA//6uzsmM0FT4ShTXNxcREXJh2p0egvDP5i3des+ws7fnt6xr4OQpHnsuelYE/q/tVuH6S+Nrw/IPE/vhSLPoE9hiV8zUajkeq+Yl8D4wvlumeLXAxYy/aumg7jWORuwHiepzLmQOL+v6xWVYubYFQN2MdrN97ZfbL39Bv/+iX7utyno1G5U1m5VUej2++AJ56tGf8l+xpAf/aPfs7dvO90H37iP2BufBfo+8xTcxwewNuvPTK94HvpX1mSWUqr7vB0//Cw2k0oBn+eC+WpTcIsXe3xCP48ULNU2vlWrX+nZO2TwloJ0tqw/blUwooOE8oWRpA5EPgKAAJh8/7kNRMq1gkIHGDPoAdODk7PQNl7+WpBeTHruEq4ScAilPG8NC7en7zu+lGIa3G9PY+AU0Hz1jgett5InYFIAw6NC+t0VhkZsCVybi2TDhbVBJq49yIw0wtpc23RDrjw7Ezc3NJgwEpW+w5hfDaKYOBR9F05wbNRtNCFGQdoxzIZRUhLsLbQjJKKDBeQO3yiC8da5uowK7wxdaQ/yjTlJQKop1Zh91UWRyKuRKpzYXoZ9elpM+sL1X1/ShbXz2LSh43bf0Vd+y0zbwXED0mz1cyksCugwa/eLOJrWwWdiCSdLLyUWgB78qpRpc47ni1gVDA1wTzmpHCtM6AtkDCfGGHdyo+gNRhsXXYbtssZnxQp9zZcTcCDrWGLLONGfuRks4zUqXAOwLlYozd6TZHOnqFEv2BinQKppn4UttRUKq7AtAE8SDWr9MjOdvfHDvz7rsNOuztbPVbiNLUaZdci8HZudJY75kSWp9wJ0ud+OYJUF+IM2D8pAFmVRmlaamfYtgZ5ogXZYMGOtjFX4NHJjM/AIA6qsWGP7RNcNHMDsSR1lgEe1YzE0sA9b+teoCu4Zt01XtexLTUJ2NjI4JNCpkkfTGmpZl2ApEvAf1Viyz+glzRNl6axWwF3pazxSCS/NxXOojuQiKkEm2kdbUBUBmcJrDTYBa9fHzGpnDC5gWHq/AhdEBHIOR6EikI99jzwgfwIr9DQxEnHYdLKTXFcpuDX0diCXIdEZ1yqrrcTYpZyNSv4DC16ni6cjHkKxh80cPIKfAxtvH+FOyQ3YioMGHylXD4E9gi0rOSB97sD90jFWr1LojLKt0MfXQB9cW/XEJnsObfimz3SQBie8EAgNwtVsnAijYhduqBeUiXySiYFT9lvhTCL4BTYHvOOIoYpnGZGOCPFlWCclajDIYnE4HhkE5EkleFVSemaN3wShqG+bcucCdfFt1sjFXUikOG4Gw6TaBARE4IhEHWiyl6LBuefIglhHlIEUScCDRQNohNaUPdMZkIXLloOC4GmBuV8LdOUZfwSFjgBt0hMp+hJaxZrMGwdrSB4TV55VuamFbFWFAVwMhNMF64XdSIbz0XGo8GniCJWETD+DCHMpJJZkUWDndtOFGzbaDDlqRW3nfutp3sk01TaP25ZGY7/JWsrlwIGYLWQysRtBb5Q8rdCsEuxYDIRynltCcD5sJ2eeiVZugyligXgKoSCoqoD25xsCMxpuqWPDjNiRNDPA2P55ZHqjTqR99qjQZQt/H5EdoQgAYx5zrsfh91/bne/HY9Gz0aj7oe//gWQwm9eCzVz82jwdLsTOelwDAoM/SgW0e3tBwJcWPdcJ4tVaJtRTIDT1UxNkH9oRJAzLlAWa/LEUcy6woBYwuhnKdhrjpJfsnfHjHUMfSTQe3NR+RkluzTsE7WoxvyMsMBblS4Y+N1VZ76g+KYPenKwbIHxgBZetQNqWvweeLyO0n7r1PilDOgGhHrUeA4rBRlpHGEYj2NdKFfjCT35l4hBrOQGJJWTwiJofv0t/GYm0hluFoy6kvzEfToRHlcUKmpFJqCwinSUWGwBqDJDj2ug0WYoGRigAwxmiNJIqJlUQng2T3Q8poBENIi4iefSCdRe40TymeFZdHvbiVbiEzBqbYKwedZGSaLbVeCbONufa20F2Q+a2TyVrqY/kWg4qg0Ww1KUXloWYh6syyRptkSTqUd+U4gABaAoAlBuqMIK8p4SiiKV7YKhjrrZsip+9CjRMWB2qxFJAkIlEtaWScWdNoAhzzqLNyQZERcgLfIc6ADctD4YVMPwGuSdoo21ukJivFRm0tHSVJFNhIHNnvEbkN41vxgXgUOQcAjoJhxCnN+CBkSrdaIL8G2lQNnZ3BcE6vKeQI/deg8EQIFmQOoNC6/MvGBeouICH0BPA3yBCHarTYx7WoIY34Dg205bsG11EadeZxIyAworpK5HZsllPElsySrWJ6mQmwrlJK3QacfT9mHFTQyRcGyGdEUrjjOwL8G38AOvtutAeAC3lfWBL9+SE2UJmz2ImotBuaUwAwDCO+ZW+MyWC7yBQhx5o3RfS4OjvhlWLAeytOnRk92GKbG9fduwlM5bCYMJQ+8NHXMDIgKa7nvCnga6fqg08BG/2YdRVtrcdjbJrS/ceqsyoyEpGnheETsFKNFr2DdKt0wgbWXDffEuXI+CJSmJWoyWtW5VG7fhJh1x+/lkPfXDrZIVRtNKvJ2i4/AgPx/k54P8/GPk54OI/D8qImuN2tTimjDxku3fDBqT93G3tY8jFRT1IR93OVAbknY1N3LF0Efnbop7KDj3S7Qow71+5Ebe8/jFS0odrfLG8qpKHp9onQquVlZ0OEU3A9w3cL9aOKLmrbcBs7xUEd4GvxEdHnIbLTh0wF6l/4gSvAdU82OT29EqfuMK6z66Usc90ELDxkLJiO5T2EJ3OUzlCHc7zxQhWgYQVo15Kx+NWAPYxnCN882jZUGIU9ZYHlMDB2FswA2gbyaUD0beH39VHw9h8FFbAv6fj9Uybm56bJimtRQ240Y0NwPUKhmZLI2AeVx7N1HSNBvfjzAQ3r8PMWa56+5pwOtSBL8eNagk4PKUS7mGgF0U+AHpQUrXUL3oleGyjCuMiU+0mzO7sE5kiCgICDKjYX/BT58RKaNtYfArWipkLf3KJ/oGsnsetT32Sl+LK2Ew/m0sGluBCJR6XVr4BbuSnDmQZFfcSICadvtqQ2lDrBYZQ0+hsmiYQ/CI/SRSHUu3KHHTY2XGNRGQFbGYM6VwSuzF7RqQatnXVKtZ10vOWv71rkSUx19Z8UW/uxRr2kK5lOlEpON6PP8uu+Ft4OwaxwcC1aLXMG7NENjIF1EjLgYIgLaFEdFgm2xYB1UflspsNgXYQLo0JMn3pRAgUbIkfZYUyho5JLUi1QgYC0n21e1YYqYK1wbPwukm/5W1Fhv3Ke2MMZW3jq92oDIjgLA6/XOpILhJhaoUqy0DymlTUOCDoMGQSL5EoVbf0AZaaeJOcK4VdCJgHxrUbMZjQ8QTA5ufHfNcE/K8X5xzk9nUaitVhG4nRKDDWjIFVnpfps58IBwNAp8vXMaRp9wZrWm5tmctDu7utgEBd3cOHLe+pY6dcFDEK3jWadQ85cm0+SCz19okzWdXKulBeeZNlhKT2S6WY4rS+II+udGxsOAVZmmvSnKuDMSttDhc2Rvsj2ZDqFP+60eZN58aN+1gGWMfap/9nzlUSa9Ok9luDvXVOdWqft5yciNskONZ2vjpZ818wfiy0GnSoAIQgiu0IW2ulSXjYXd7p91uWE1lsDm3bCKECpkiUMEcE8s+/VHl5Wq5oBV22ZAIGlaTWachGe/9axi3EzxuUBJl5qXMFEG1KM16t8kkk/ZF3yHeKsl7qK60jEV3b/sJasm1SaXGqKHZFySFciO1kW4RDaJXcjZHCVt5O6tze2/EF8bJWu7KIxNUALUBsxRMXH7FZYr6FzXziovnq6GpviiprYUbwyFnLJ3IWsAZ+qEaFQi/n1Y+D334oul21HKmLXO0kHICeXQ1I+k+3tnZqYnmVozCq8acm8ff52aiFTsRSUH4O4JKi9jCNBt4Bnh7zSRrEOUr7drH8y/XDXkH6aoR0J793O5DFos0JcLfczEgtsboAbUyEtSR49vNuH/O1SUbAqal2jCcPx30zV53Ih3zEbuV8dsjed/sofxNNd8wAb6GYi86AIDtqM4n0QVwbW5ELC04mtV8FAmtT0eNYT6IZ6yfzkc7VlYQoiBgJOjU5rzFWz5rxMtjnRaZItsPaQidrI/pYEFkPbLzXQjr1Lzk4M1Ky3Z67KiwDmzKGcbZwCngim3fL1xakhWrcvT1feCHZn824GuW375I07olSBWvZDbr6zUbEdcURFxTm9y5D42+bt+GDzv4YQc/7OAv38En+pqSmOHBC1Dxt0tBklaNXz35DOvilEIkSGkyNExpaFBFoYXA18F7NuGQN5SK7W7vPulFK5EQfEK1qO0A+jrVTabk/eWJ8nWmIhX1Urd6aWrN2of0Xb3YsHE6AQKoZWRlg4X9WWaln00SE7qw/DbzskMREizF9fXHDIUQMwICdW1+SQslIdvnxpuszyGzc21ch82LjKuuETxBk5cs0hBjQzg7TE+dUCyRNk/5Apy1ib4SUCfKIVhoIdAk74DoXcGNEyZdsFMODsKxMIh2FaMEi/kabh6yiZECGJK4mZI8WDAPiLhxCIaC01spV7VkUgW9W+RQ7p0uaiuYiBS01x1AE6gzo6/h8KQRUB0Lg7/bAQq92wNy7m7v7t25J4cMEAUxYorMgie8ukWJK7AsNcbQw0SmEOCFB9VpE7/uzZAP2YQbzHo7IDSe9/ytJIGtratDmgcWU7icqIInViDPYMSV1IUNXXH77zz9L3RTZSbG7flTYP2jw6MDypvWF9fBWvS4is36E80hsk5RRTpPInqzXoe69f+VCzos/8PxwfdeeLQWK1QYqDquRA5lEnnpNEanqb6YWlQW6/2PgjcOg2CKbXW9x/A4rKEUZCjbsCgbjvA3UntlxgAHXOcs+2J8Oj6USotoqgoiMfckFKWZqdFSnjRUHKJegxKETROUcE8WzYjFndZcKB5emT8EpGeCznZfCTxhSuW3yh8lwNlVUh1ZyHjuizqsgNAsM8JinuW9LXAX87Yk+gbDcY3rjbJjiWawlM1sRQloitiEox+2Kh32AQA2lxBzWnhp0bs7rlM/HlanBkIEgXUryoppS7GsqotMKRfo/PkOLN+XU/8C0s5GTgrn4zJlKiiB/FAz1vZ7I0kApeFQ8PPtNhWgUAhknWZcjrS0GALIVsBFPvkJhb4tpFFFiiy9AlV7MIa2/d1g1U69/IfBIgh2yOxW6xk06Df8J6i0z+DUF00Fk8IBLtzDbMnmoCXBCQIqoGhVNgAtMvk4kZlQ4JysMe38IbGqGV6IUA15LeRs7lq5bRlp7dz36U6XqD6SP2hTGdkI3otqEcvaASlSUwPhlC1IeWwMOxtIWFg+E0ulMJOFE3YMOxQqsXb3qm0/rr/affrNnQUyr/Q1y+DkpJ+vSTMYJ5TD1AxYuA+hMFAUlFJhmRFwGiRkRmsSv2l1ouELKqLZPlTYLwVZmzK2vrBlhnhT+l7YimTXZFE396FoD+DR13hSuqyqpNMZUKpI4IUGcAIliFmw+ex9nPJagdz27RqirIe9lLTNRbRGnu8Hwu0qf50Smd8jV1VVPJA9a+O0lRSb56z781UtDP9boeHgyZ+UwdYsdbOvn6ODuVJXVZ5VtUUmkvpBmxIPX0LMKonv6Xjb0JOgd6KMq2LKId0M2snbEt3dJ092oiUrwWepcVZsBWaYSgrrzGJ5oKiWvDn3My1pwGhZCgrDnvuddKimeoVVjrRy87TabqiFdM4aE7M4lViEWKUgyuzB+XkzdlfNi6dgsHC0/vo5T71HuPRiSEeyGN2ylES3Hz6EsObKHMM4o3uYcJhGLG5ne/fJdm/36cr4EMfobu90d55CTeTyiM+Fg5t+EPHAkyvj/v1vT7fbxtzt7ux0Ia23OuY/YcyjJQoug/tk79tve99+uwbcb7pPtgETeKAwRFsC7YOZUdF8kwte88Dv7/Uus8sf7HQ2fE7v3+Vo9NR8Odg2+H8kf3r+9uR6+8fvZ3o4HA7fnL6fH7yfwZ8H8M/z/eHhcDjcf5fsHAt48OIgPXj308me+v54r9//e384/OWvw6u9N3/b5ntD7Ja+PLs8Ld5l+/t0htO7g+fBzfi9zkFz16/Y0h9aTI7PsjPaNMkamfqkTTNFlOvf295ee1QVi3zKu6Y4qHEsRqCc7u/M4B8Yo82SwuDVqVQfKASE4409tRoxbdiV1HQ5AY1Ot/pQ/eWdXiNGg8cCpl9j5NK7cGVcqEwsz8z7u+K8oe0hvr9/tVwYeYsmi7UhnrrOMw+E821X3INg6grr7uECBUSTxvS3Efro5FykOVu63oIlYlLM2DWedMU4rNFtzlGdxZ7zxNcpIbFLTnvSEmURJpOWPAp/oobDVTu1S4Cqax//QxUkVEmYErlZKHYh4QURDHwM9/jQRXGE9vucG65o2RYKoLc+RDiBlV3PF2Sr4Iw6RhtsY73EXbzQrECBI+089Xdh0Sy9PyG7NJlkbxUkf/0iMMcUDlj9UdJHJMANdLtf7YCBbN/l98sWHL4IV3lMRAX9EjL+vwqCN9q9hCU3KLzzdN0OSaCCuhZdbl6dKhv3+3yRDnqQAX82Tqk4BE9CTYVRXb8MMsaAFl1bexAu/4HbSfD+UWSHBH6jf+hL1pnMECYPI9z6Q64NexaePYKL2BjjuYQrTZ6Nol/fvj8ZD48Pxz8e/Ao3NuLrr5g29Bf1H8skNN1/fXjw5mx8+KJs7JtYERvhlpqdHuyfHJxh060ATM/f0ASM7sGpLll5Vv3ph8dr+Tzv1x7hzW02LWZyunhUmHSLpohuP9x+KLFqk8vuzOgi7/rSZJo6ajTIhJvrJLSY0p094saVMcLzT3CdYDRYf8FzJ/J+zYaLnsEFCsM0SV71fiD9l5J+BctLLFDiOrBCa4c6S1Q9kDWAu+g1UERbRzfqzKNBVL8a81O1mNv63ZhwHRFd14nULUwKlye13rSJU1kRF1Thev4pGubyR7EYFjDbOS71LfzYxV+1xqegCkgwhwbVORWOD1bOqWA7n7YFYeeZJsJaICq+IhruG4HVADwlCQ1nTd43l1G4ef3GUJqyjy3xOiadI3AkAOuLquwBfIjBopbLpcqbQKlKAwI/NV2xcqHl1epywztbpQyYM7wM8WPYzB+HA+qG25z9Rbw1/QuXq4WL1KYSasDTFJSJLgxNwB27WH+V6n/DSsJdyP9zwcKFWOGRPx9XOMh+JMEfg1NXEGCwxcSnKH32VlrsfVKWXoQMJlanG1Fd/u40ncd0hcQjYtCAbv6E9KS/9hNxOC3S6kK4Hl22TGkSjKIyYGYfWH38+GoXb3jvsov6wi7KS0U5m0th8MAKXGBXjtvx18ulcEQAD5oDQPNFPheIYoZHw7zI7LCL1jtoy9TyRQ/vZPOQQbipt93bBqUsTGbfToN8rni2fhosFTOe9rFpV0+7lhr3UWukeobM1ty4KwfKZDYLQ47hKAacTuhRqIen7oyCLWGLoRWQcHP5JaOPU0hKbZoDww0x2o8C7poHiSZEMuHx5T9qo1OdgLYuo3I0v+dWvktQOajLu+tTZao+fM7g4XMGD58zePicwcPnDB4+Z/DwOQP38DmDh88ZPHzO4OFzBg+fM3j4nMHD5wwePmfw8DmDh88Z/Dk/Z+BW78voUFjqkw93n0cYV/XGU9SJBo2r8usx7w+daA6R8sF59OkT2P7vTXp7C49x+RC+hig73SSFke5EWrxPwVc/bwgwPToJ5in7j9zH37rwEJVWi1o6IOr4xEFt3ZCACOHqz1vHH/2Bh9Z1Efyr354olwg5hv+FNWz6msP9F1J9dKKxHmpbt+VrLdru6q86kVVfa756+089PQSORwSHm+kTCZlP22mT+VNb5Z+QwLm9/TdKVvgk sidebar_class_name: "post api-method" info_path: docs/rest-api/vectara-rest-api-v-2 custom_edit_url: null @@ -148,7 +148,7 @@ You can include images in structured documents using the [Indexing API](/docs/re diff --git a/www/sidebars.ts b/www/sidebars.ts index 030d8291f..26d363f33 100644 --- a/www/sidebars.ts +++ b/www/sidebars.ts @@ -397,6 +397,22 @@ const sidebars: SidebarsConfig = { }, ], }, + { + type: "category", + label: "Schedules", + link: { + type: "doc", + id: "rest-api/agent-schedules", + }, + items: [ + { + type: "doc", + id: "rest-api/list-agent-schedules", + label: "List agent schedules", + className: "api-method get", + }, + ], + }, { type: "category", label: "Instructions", diff --git a/www/static/vectara-oas-v2.yaml b/www/static/vectara-oas-v2.yaml index 92ac96242..3bfeeab01 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: Agent Schedules + description: Create and manage scheduled automated execution of agents at specified + intervals. - name: Guardrails description: List predefined guardrails for validating tool calls, agent outputs, and agent actions. @@ -41,6 +44,14 @@ tags: - name: Agent Connectors description: Create and manage connectors that allow agents to receive events from external platforms like Slack. +- name: Pipelines + description: Create and manage automated data pipelines. A pipeline is a one-directional + flow that sends all data from a source system to an agent, creating a new session + per source record for the agent to act on. This is distinct from agent schedules + (recurring single executions) and connectors (bidirectional chat integrations + like Slack). +- name: Pipeline Runs + description: Monitor pipeline execution runs and their processing outcomes. - name: Queries description: The Query APIs are the primary interface for searching your data and generating AI-powered summaries. After indexing documents into corpora, you use @@ -94,6 +105,10 @@ tags: - name: Factual Consistency Evaluation description: Evaluate text quality metrics like factual consistency and hallucination detection. +- name: Customer Configuration + description: Retrieve customer configuration and authentication details. +- name: Chats + description: 'Deprecated: use Agents instead. Chat endpoints are no longer supported.' paths: /v2/corpora: post: @@ -1563,6 +1578,30 @@ paths: required: true schema: $ref: '#/components/schemas/CorpusKey' + - name: wait_for + in: query + description: 'Controls how long the request waits before returning a response. + + - `searchable` (default): Waits until the document is fully indexed and + immediately searchable. Use this when you need to query the document immediately + after indexing. + + - `indexed`: Waits until the document is durably stored and will be included + in future search results. This is faster but the document may not appear + in search results for a brief period after the response. + + + Both modes return a successful response once the specified condition is + met. + + ' + required: false + schema: + type: string + enum: + - searchable + - indexed + default: searchable requestBody: content: application/json: @@ -1756,7 +1795,41 @@ paths: required: false schema: type: string + - name: async + in: query + description: 'Whether to perform the deletion asynchronously. + + - `true` (default): Returns immediately with job_id to track progress (HTTP + 202) + + - `false`: Waits for completion and returns deletion results (HTTP 200) + + + When `async=false`, the operation will wait for the deletion to complete + up to the timeout specified in the `Request-Timeout` or `Request-Timeout-Millis` + header. + + If no timeout header is provided, defaults to 7 days. + + If the operation times out, returns HTTP 504 with job_id to track via Jobs + API. + + + The workflow continues running in the background even if the API wait times + out. + + ' + required: false + schema: + type: boolean + default: true responses: + '200': + description: Bulk delete operation completed successfully (synchronous mode). + content: + application/json: + schema: + $ref: '#/components/schemas/BulkDeleteDocumentsResponse' '202': description: Bulk delete operation accepted and queued. content: @@ -1781,6 +1854,14 @@ paths: application/json: schema: $ref: '#/components/schemas/NotFoundError' + '504': + description: Synchronous operation timed out. The error message contains + the job_id to track status via Jobs API. Workflow continues running in + background. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' x-fern-sdk-group-name: documents x-fern-sdk-method-name: bulk_delete /v2/corpora/{corpus_key}/documents/{document_id}: @@ -2553,9 +2634,9 @@ paths: \ (integer): Number of characters to include before the matching text.\n*\ \ `characters_after` (integer): Number of characters to include after the\ \ matching text.\n* `start_tag` (string): HTML-style tag to wrap the beginning\ - \ of the retrieved context (e.g., ).\n* `end_tag` (string): HTML-style\ - \ tag to wrap the end of the retrieved context (e.g., ).\n:::note\nYou\ - \ can only use sentences before/after OR characters before/after, but not\ + \ of the retrieved context (e.g., ``).\n* `end_tag` (string): HTML-style\ + \ tag to wrap the end of the retrieved context (e.g., ``).\n:::note\n\ + You can only use sentences before/after OR characters before/after, but not\ \ both.\n:::\n\nExample:\n\n```json\n{\n \"context_configuration\": {\n \ \ \"sentences_before\": 2,\n \"sentences_after\": 2,\n \"start_tag\"\ : \"\",\n \"end_tag\": \"\"\n }\n}\n```\n\n`search.reranker`\ @@ -2569,7 +2650,7 @@ paths: * `cutoff` (float): Minimum relevance score (between 0.0 and 1.0) for a result\ \ to be included. A typical range is 0.3-0.7.\n* `include_context` (boolean):\ \ If true, uses surrounding context text for more accurate reranking.\n\n\ - **Example:**\n\n`json\n{\n \"reranker\": {\n \"type\": \"customer_reranker\"\ + **Example:**\n\n```json\n{\n \"reranker\": {\n \"type\": \"customer_reranker\"\ ,\n \"reranker_name\": \"Rerank_Multilingual_v1\",\n \"limit\": 50,\n\ \ }\n}\n```\n\n`generation` (object, optional) - An object that controls\ \ how the agent creates natural language responses. If this object is excluded,\ @@ -2779,6 +2860,7 @@ paths: doc_type: annual_report document_id: fin-report-2023-001 request_corpora_index: 0 + corpus_key: fin_docs - text: Investment in sustainable finance grew by 15% among EU banks, aligning with ESG mandates. score: 0.9187 @@ -3170,6 +3252,7 @@ paths: governing_law: CA document_id: contract-nda-2023-001 request_corpora_index: 0 + corpus_key: fin_docs - text: Arbitration via AAA in New York under Delaware law, with a 60-day opt-out and mediation as a prerequisite. score: 0.9087 @@ -3180,6 +3263,7 @@ paths: governing_law: DE document_id: contract-nda-2023-002 request_corpora_index: 0 + corpus_key: fin_docs Finance: summary: Detailed comparison of RSU vesting schedules in 2022 and 2024 Canadian tech equity policies, highlighting policy shifts @@ -3208,6 +3292,7 @@ paths: year: 2022 document_id: equity-policy-2022-001 request_corpora_index: 0 + corpus_key: fin_docs - text: The 2024 policy introduces a 1-year cliff with monthly vesting over 3 years, aligning with tech industry standards in Canada. @@ -3218,6 +3303,7 @@ paths: year: 2024 document_id: equity-policy-2024-001 request_corpora_index: 0 + corpus_key: fin_docs Support: summary: Comprehensive diagnosis and resolution for intermittent login failures in a SaaS portal on Chrome, addressing SSO token @@ -3251,6 +3337,7 @@ paths: version: v2.4 document_id: support-login-001 request_corpora_index: 0 + corpus_key: support_kb - text: Updating SSO configurations to enforce token refresh every 24 hours prevents login disruptions on Chrome. score: 0.9172 @@ -3264,6 +3351,7 @@ paths: version: v2.4 document_id: support-login-001 request_corpora_index: 0 + corpus_key: support_kb schema: $ref: '#/components/schemas/QueryFullResponse' text/event-stream: @@ -3591,13 +3679,20 @@ paths: {\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\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\"\ + \ \"value\": \"your-azure-key\"\n }\n}\n```\n\n### Google Vertex AI (Gemini)\ + \ \u2014 Service Account\n\n**Type:** `vertex-ai`\n**Models:** gemini-2.5-pro,\ + \ gemini-2.5-flash\n**Auth:** Service account\n\n```json\n{\n \"type\": \"\ + vertex-ai\",\n \"name\": \"my-gemini\",\n \"model\": \"gemini-2.5-flash\"\ + ,\n \"uri\": \"https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR-PROJECT/locations/us-central1\"\ ,\n \"auth\": {\n \"type\": \"service_account\",\n \"key_json\": \"\ - {...service account JSON...}\"\n }\n}\n```\n\n### Custom OpenAI-Compatible\n\ + {...service account JSON...}\"\n }\n}\n```\n\n### Google AI Studio (Gemini)\ + \ \u2014 API Key\n\n**Type:** `vertex-ai`\n**Models:** gemini-2.5-pro, gemini-2.5-flash\n\ + **Auth:** API key\n\n```json\n{\n \"type\": \"vertex-ai\",\n \"name\": \"\ + my-gemini\",\n \"model\": \"gemini-2.5-flash\",\n \"uri\": \"https://generativelanguage.googleapis.com/v1beta\"\ + ,\n \"auth\": {\n \"type\": \"api_key\",\n \"api_key\": \"your-google-api-key\"\ + \n }\n}\n```\n\nThe `uri` field is flexible \u2014 you can provide a base\ + \ URI or a full URL copied from Google docs\n(including model path and `:generateContent`\ + \ suffix). The system normalizes it automatically.\n\n### Custom OpenAI-Compatible\n\ \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\"\ @@ -5719,6 +5814,20 @@ paths: schema: type: boolean example: true + - in: query + name: category + description: Filter tools by category. Pass one or more category values to + include only those categories. When omitted, tools in the "experimental" + category are excluded by default. To include experimental tools, explicitly + pass `category=experimental`. + required: false + schema: + type: array + items: + type: string + example: + - retrieval + - utilities - in: query name: tool_server_id description: Filter tools by the tool server they belong to. @@ -6042,15 +6151,20 @@ paths: $\\{agent.metadata.field}`: Agent-level metadata (configuration or environment).\n\ \nExample tool iteration:\n```velocity\nYou have access to the following tools:\n\ \\#foreach(\\$\\tool in $tools)\n - \\$\\{tool.name}: \\$\\{tool.description}\n\ - #end\n```\n:::tip Tips for effective instruction design\nProvide clear, directive\ - \ language in the template to shape the agent\u2019s behavior. You can emphasize\ - \ specific requirements using capital letters or negative instructions such\ - \ as **DO NOT**.\n\nMetadata can personalize behavior. For example:\n\n```velocity\n\ + #end\n```\n:::tip Tips for effective instruction design\nInstructions are\ + \ one of the most critical parts of an agent's design. Best practices vary\ + \ by model, but at a minimum you should provide clear guidance on what tools\ + \ are available, what output format is desired, and what steps to follow for\ + \ common queries. Instructions typically need to be iterated on and tested\ + \ over time.\n\nFor guidance on writing effective instructions, see:\n- [Claude\ + \ Prompt Engineering](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview)\n\ + - [OpenAI Prompt Engineering](https://platform.openai.com/docs/guides/prompt-engineering)\n\ + :::\n\nMetadata can personalize behavior at runtime. For example:\n\n```velocity\n\ Hello ${session.metadata.user_name}, how can I help with ${session.metadata.department}\ \ today?\n```\n\n**Example request:**\n```json\n{\n \"name\": \"Customer\ \ Support Tone and Style Guide\",\n \"description\": \"Defines tone and behavior\ \ for customer interactions.\",\n \"template\": \"You are a customer support\ - \ agent. ALWAYS be polite and DO NOT USE technical jargon.\",\n \"enabled\"\ + \ agent for the ${session.metadata.department} department.\",\n \"enabled\"\ : true,\n \"metadata\": {\n \"owner\": \"customer-support-team\",\n \ \ \"version\": \"1.0.0\"\n }\n}\n```\nA successful response returns the\ \ full instruction definition, including its unique ID, version, and timestamps.\n" @@ -6225,7 +6339,7 @@ paths: x-supported-api-key-type: - Personal description: 'Update an existing instruction''s template, metadata, and configuration. - Updated templates may include Velocity variables such as `\$tools` or metadata + 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. @@ -6350,8 +6464,8 @@ paths: x-supported-api-key-type: - Personal 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. + 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. operationId: testInstruction @@ -6738,7 +6852,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ReplaceAgentRequest' + $ref: '#/components/schemas/CreateAgentRequest' responses: '200': description: The agent has been replaced successfully. @@ -7130,21 +7244,23 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/CreateInputEvent' + $ref: '#/components/schemas/CreateInputRequest' multipart/form-data: encoding: message: contentType: text/plain style: form files: - contentType: application/octet-stream, application/pdf, application/msword, - application/vnd.openxmlformats-officedocument.wordprocessingml.document, - application/vnd.oasis.opendocument.text, application/epub+zip, application/rtf, - text/html, text/plain, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, - text/markdown, image/png, image/jpeg, image/gif, image/webp + contentType: '*/*' style: form stream_response: - contentType: text/plain + contentType: application/json, text/plain + style: form + since: + contentType: application/json + style: form + behavior: + contentType: application/json style: form x-stream-based-on-body: streamResponse() responses: @@ -7175,6 +7291,13 @@ paths: application/json: schema: $ref: '#/components/schemas/NotFoundError' + '409': + description: Session is already running. Use the `since` field in the request + body to queue input. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' '422': description: Could not process due to an invalid agent configuration (such as invalid instruction or tool description templates). @@ -7182,6 +7305,12 @@ paths: application/json: schema: $ref: '#/components/schemas/Error' + '502': + description: Failed to communicate with the pod handling this session. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' x-fern-sdk-group-name: agent_events x-fern-sdk-method-name: create x-fern-streaming: @@ -7190,10 +7319,12 @@ paths: response: description: An event in an agent session conversation. type: object + x-vectara-base-schema: '#/AgentEventBase' discriminator: propertyName: type mapping: input_message: '#/components/schemas/InputMessageEvent' + skill_load: '#/components/schemas/SkillLoadEvent' artifact_upload: '#/components/schemas/ArtifactUploadEvent' tool_input: '#/components/schemas/ToolInputEvent' tool_output: '#/components/schemas/ToolOutputEvent' @@ -7201,10 +7332,14 @@ paths: agent_output: '#/components/schemas/AgentOutputEvent' structured_output: '#/components/schemas/StructuredOutputEvent' context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent' + step_transition_limit_exceeded: '#/components/schemas/StepTransitionLimitExceededEvent' + session_interrupted: '#/components/schemas/SessionInterruptedEvent' image_read: '#/components/schemas/ImageReadEvent' - guardrail_check: '#/components/schemas/GuardrailCheckEvent' + step_transition: '#/components/schemas/StepTransitionEvent' + compaction: '#/components/schemas/CompactionEvent' oneOf: - $ref: '#/components/schemas/InputMessageEvent' + - $ref: '#/components/schemas/SkillLoadEvent' - $ref: '#/components/schemas/ArtifactUploadEvent' - $ref: '#/components/schemas/ToolInputEvent' - $ref: '#/components/schemas/ToolOutputEvent' @@ -7212,41 +7347,11 @@ paths: - $ref: '#/components/schemas/AgentOutputEvent' - $ref: '#/components/schemas/StructuredOutputEvent' - $ref: '#/components/schemas/ContextLimitExceededEvent' + - $ref: '#/components/schemas/StepTransitionLimitExceededEvent' + - $ref: '#/components/schemas/SessionInterruptedEvent' - $ref: '#/components/schemas/ImageReadEvent' - properties: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_user_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 - enum: - - input_message - - artifact_upload - - tool_input - - 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. - type: string - format: date-time - example: '2024-01-15T10:35:00Z' - required: - - id - - session_key - - type - - created_at + - $ref: '#/components/schemas/StepTransitionEvent' + - $ref: '#/components/schemas/CompactionEvent' response-stream: description: An individual event sent with Server-sent Events (SSE) when the agent response is streamed. @@ -7254,6 +7359,7 @@ paths: discriminator: propertyName: type mapping: + input_message: '#/components/schemas/InputMessageEvent' streaming_agent_output: '#/components/schemas/StreamingAgentOutput' streaming_agent_output_end: '#/components/schemas/StreamingAgentOutputEnd' streaming_thinking: '#/components/schemas/StreamingThinking' @@ -7262,10 +7368,17 @@ paths: tool_output: '#/components/schemas/ToolOutputEvent' structured_output: '#/components/schemas/StructuredOutputEvent' context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent' + step_transition_limit_exceeded: '#/components/schemas/StepTransitionLimitExceededEvent' + session_interrupted: '#/components/schemas/SessionInterruptedEvent' image_read: '#/components/schemas/ImageReadEvent' + step_transition: '#/components/schemas/StepTransitionEvent' + context_consumed: '#/components/schemas/ContextConsumedEvent' + compaction_started: '#/components/schemas/CompactionStartedEvent' + compaction: '#/components/schemas/CompactionEvent' error: '#/components/schemas/StreamError' end: '#/components/schemas/StreamResponseEnd' oneOf: + - $ref: '#/components/schemas/InputMessageEvent' - $ref: '#/components/schemas/StreamingAgentOutput' - $ref: '#/components/schemas/StreamingAgentOutputEnd' - $ref: '#/components/schemas/StreamingThinking' @@ -7274,7 +7387,13 @@ paths: - $ref: '#/components/schemas/ToolOutputEvent' - $ref: '#/components/schemas/StructuredOutputEvent' - $ref: '#/components/schemas/ContextLimitExceededEvent' + - $ref: '#/components/schemas/StepTransitionLimitExceededEvent' + - $ref: '#/components/schemas/SessionInterruptedEvent' - $ref: '#/components/schemas/ImageReadEvent' + - $ref: '#/components/schemas/StepTransitionEvent' + - $ref: '#/components/schemas/ContextConsumedEvent' + - $ref: '#/components/schemas/CompactionStartedEvent' + - $ref: '#/components/schemas/CompactionEvent' - $ref: '#/components/schemas/StreamError' - $ref: '#/components/schemas/StreamResponseEnd' get: @@ -7317,6 +7436,14 @@ paths: required: false schema: type: string + - name: include_hidden + in: query + description: Include hidden events (compacted or manually hidden) in the response. + Defaults to false. + required: false + schema: + type: boolean + default: false responses: '200': description: List of events in the session. @@ -7395,6 +7522,131 @@ paths: $ref: '#/components/schemas/NotFoundError' x-fern-sdk-group-name: agent_events x-fern-sdk-method-name: get + delete: + tags: + - Agent Sessions + summary: Delete event + x-supported-api-key-type: + - Personal + description: Permanently delete an event from a session. Removes the event from + both the metadata database and the encrypted event store. + operationId: deleteAgentEvent + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: path + name: session_key + required: true + schema: + $ref: '#/components/schemas/AgentSessionKey' + - in: path + name: event_id + required: true + schema: + type: string + pattern: aev_[0-9a-zA-Z_-]+$ + responses: + '204': + description: Event deleted. + '404': + description: Agent, session, or event not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + x-fern-sdk-group-name: agent_events + x-fern-sdk-method-name: delete + /v2/agents/{agent_key}/sessions/{session_key}/events/{event_id}/hide: + post: + tags: + - Agent Sessions + summary: Hide event + x-supported-api-key-type: + - Personal + description: Manually hide an event in a session. Sets hide_reason to 'manual'. + operationId: hideAgentEvent + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: path + name: session_key + required: true + schema: + $ref: '#/components/schemas/AgentSessionKey' + - in: path + name: event_id + required: true + schema: + type: string + pattern: aev_[0-9a-zA-Z_-]+$ + responses: + '200': + description: Event hidden. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentEvent' + '404': + description: Agent, session, or event not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + x-fern-sdk-group-name: agent_events + x-fern-sdk-method-name: hide + /v2/agents/{agent_key}/sessions/{session_key}/events/{event_id}/unhide: + post: + tags: + - Agent Sessions + summary: Unhide event + x-supported-api-key-type: + - Personal + description: Unhide a hidden event in a session. Clears the hide_reason. + operationId: unhideAgentEvent + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: path + name: session_key + required: true + schema: + $ref: '#/components/schemas/AgentSessionKey' + - in: path + name: event_id + required: true + schema: + type: string + pattern: aev_[0-9a-zA-Z_-]+$ + responses: + '200': + description: Event unhidden. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentEvent' + '404': + description: Agent, session, or event not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + x-fern-sdk-group-name: agent_events + x-fern-sdk-method-name: unhide /v2/agents/{agent_key}/sessions/{session_key}/artifacts: get: tags: @@ -7439,6 +7691,26 @@ paths: required: false schema: type: string + - name: sort_by + in: query + description: The field to sort results by. + required: false + schema: + type: string + enum: + - created_at + - updated_at + default: created_at + - name: order_by + in: query + description: The ordering direction of the results. + required: false + schema: + type: string + enum: + - asc + - desc + default: desc responses: '200': description: List of artifacts in the session. @@ -7518,66 +7790,403 @@ paths: $ref: '#/components/schemas/NotFoundError' x-fern-sdk-group-name: agent_artifacts x-fern-sdk-method-name: get -components: - parameters: - RequestTimeout: - in: header - name: Request-Timeout - description: The API will make a best effort to complete the request in the - specified seconds or time out. - schema: - type: integer - minimum: 1 - required: false - RequestTimeoutMillis: - in: header - name: Request-Timeout-Millis - description: The API will make a best effort to complete the request in the - specified milliseconds or time out. - schema: - type: integer - minimum: 1 - securitySchemes: - OAuth2: - type: oauth2 - description: OAuth2 access to Vectara - flows: - clientCredentials: - tokenUrl: https://auth.vectara.io/oauth2/token - scopes: {} - ApiKeyAuth: - type: apiKey - in: header - name: x-api-key - schemas: - CorpusKey: - description: A user-provided key for a corpus. - type: string - example: my-corpus - pattern: '[a-zA-Z0-9_\=\-]+$' - maxLength: 50 - FilterAttribute: - description: Defines a filter attribute that can be used to filter search results - based on document metadata for precise retrieval. - type: object - properties: - name: - description: The JSON path of the filter attribute in a document or document - part metadata. - type: string - example: Title - level: - description: Indicates whether this is a document or document part metadata - filter. - type: string - enum: - - document - - part - example: document - description: - description: Description of the filter. May be omitted. - type: string - example: The title of the document. + /v2/agents/{agent_key}/schedules: + post: + tags: + - Agent Schedules + summary: Create agent schedule + x-supported-api-key-type: + - Personal + description: "Create a new schedule for automatically executing an agent at\ + \ specified intervals. Each execution creates a new session with the configured\ + \ message and metadata.\n\nSchedules enable automated agent workflows such\ + \ as daily reports, periodic monitoring, or regular data processing. The schedule\ + \ will create sessions tagged with metadata to identify them as scheduled\ + \ executions.\n\n## Example request\n\n```json\n\\$ curl -X POST https://api.vectara.io/v2/agents/support-agent/schedules\ + \ \\\n-H \"Authorization: Bearer YOUR_API_KEY\" \\c\n-H \"Content-Type: application/json\"\ + \ \\\n-d '{\n \"key\": \"daily-report\",\n \"name\": \"Daily Summary Report\"\ + ,\n \"message\": [{\"type\": \"text\", \"content\": \"Generate a summary\ + \ of today's activities\"}],\n \"schedule\": {\n \"type\": \"interval\"\ + ,\n \"interval\": \"PT24H\"\n },\n \"session_metadata\": {\n \"report_type\"\ + : \"daily\"\n }\n}'\n```\nA successful response includes the unique schedule\ + \ key, configuration, and creation timestamp.\n" + operationId: createAgentSchedule + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + description: The unique key of the agent to create a schedule for. + required: true + schema: + $ref: '#/components/schemas/AgentKey' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAgentScheduleRequest' + responses: + '201': + description: The response includes the complete schedule configuration including + the unique schedule key, interval, and timestamps. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentSchedule' + '400': + description: Schedule creation request was malformed or invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestError' + '403': + description: Permissions do not allow creating schedules for this agent. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Referenced agent not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + '409': + description: A schedule with the specified key already exists. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + x-fern-sdk-group-name: agent_schedules + x-fern-sdk-method-name: create + get: + tags: + - Agent Schedules + summary: List agent schedules + x-supported-api-key-type: + - Personal + description: List all schedules for the specified agent. This endpoint returns + high-level information about each schedule including execution status and + next scheduled execution time. + operationId: listAgentSchedules + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + description: The unique identifier of the agent to list schedules for. + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: query + name: limit + description: The maximum number of schedules to return in the list. + required: false + schema: + type: integer + format: int32 + minimum: 1 + maximum: 100 + default: 10 + - name: page_key + in: query + description: Used to retrieve the next page of schedules after the limit has + been reached. + required: false + schema: + type: string + responses: + '200': + description: List of agent schedules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAgentSchedulesResponse' + '403': + description: Permissions do not allow listing agent schedules. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Agent not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + x-fern-sdk-group-name: agent_schedules + x-fern-sdk-method-name: list + x-fern-pagination: + cursor: $request.page_key + next_cursor: $response.metadata.page_key + results: $response.schedules + /v2/agents/{agent_key}/schedules/{schedule_key}: + get: + tags: + - Agent Schedules + summary: Get agent schedule + x-supported-api-key-type: + - Personal + description: Retrieve the full details of a specific agent schedule using its + unique schedule key. The response includes the schedule's configuration, execution + history, and timestamps. + operationId: getAgentSchedule + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + description: The unique key of the agent. + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: path + name: schedule_key + description: The unique key of the schedule. + required: true + schema: + $ref: '#/components/schemas/AgentScheduleKey' + responses: + '200': + description: Agent schedule details. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentSchedule' + '403': + description: Permissions do not allow accessing this schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Agent or schedule not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + x-fern-sdk-group-name: agent_schedules + x-fern-sdk-method-name: get + patch: + tags: + - Agent Schedules + summary: Update agent schedule + x-supported-api-key-type: + - Personal + description: 'Update an existing agent schedule. All fields are optional - only + provided fields will be updated (PATCH semantics). + + + You can pause/resume a schedule by setting the `enabled` field to `false`/`true`. + Updating the schedule configuration (interval or cron) will reschedule future + executions but will not affect executions currently in progress. + + ' + operationId: updateAgentSchedule + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + description: The unique key of the agent. + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: path + name: schedule_key + description: The unique key of the schedule to update. + required: true + schema: + $ref: '#/components/schemas/AgentScheduleKey' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAgentScheduleRequest' + responses: + '200': + description: Updated schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/AgentSchedule' + '400': + description: Update request was malformed or invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/BadRequestError' + '403': + description: Permissions do not allow updating this schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Agent or schedule not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + x-fern-sdk-group-name: agent_schedules + x-fern-sdk-method-name: update + delete: + tags: + - Agent Schedules + summary: Delete agent schedule + x-supported-api-key-type: + - Personal + description: 'Delete an agent schedule. This stops all future executions of + the schedule. + + + Sessions that were previously created by this schedule are not deleted and + remain accessible. + + ' + operationId: deleteAgentSchedule + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + description: The unique key of the agent. + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: path + name: schedule_key + description: The unique key of the schedule to delete. + required: true + schema: + $ref: '#/components/schemas/AgentScheduleKey' + responses: + '204': + description: Schedule successfully deleted. + '403': + description: Permissions do not allow deleting this schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Agent or schedule not found. + content: + application/json: + schema: + $ref: '#/components/schemas/NotFoundError' + x-fern-sdk-group-name: agent_schedules + x-fern-sdk-method-name: delete + /v2/agents/{agent_key}/schedules/{schedule_key}/executions: + get: + tags: + - Agent Schedules + summary: List agent schedule executions + x-supported-api-key-type: + - Personal + description: List all execution attempts for a schedule, ordered by most recent + first. + operationId: listAgentScheduleExecutions + parameters: + - $ref: '#/components/parameters/RequestTimeout' + - $ref: '#/components/parameters/RequestTimeoutMillis' + - in: path + name: agent_key + required: true + schema: + $ref: '#/components/schemas/AgentKey' + - in: path + name: schedule_key + required: true + schema: + $ref: '#/components/schemas/AgentScheduleKey' + - in: query + name: limit + schema: + type: integer + format: int32 + minimum: 1 + maximum: 100 + default: 10 + - name: page_key + in: query + schema: + type: string + responses: + '200': + description: List of schedule execution attempts. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAgentScheduleExecutionsResponse' + x-fern-sdk-group-name: agent_schedules + x-fern-sdk-method-name: list_executions + x-fern-pagination: + cursor: $request.page_key + next_cursor: $response.metadata.page_key + results: $response.executions +components: + parameters: + RequestTimeout: + in: header + name: Request-Timeout + description: The API will make a best effort to complete the request in the + specified seconds or time out. + schema: + type: integer + minimum: 1 + required: false + RequestTimeoutMillis: + in: header + name: Request-Timeout-Millis + description: The API will make a best effort to complete the request in the + specified milliseconds or time out. + schema: + type: integer + minimum: 1 + securitySchemes: + OAuth2: + type: oauth2 + description: OAuth2 access to Vectara + flows: + clientCredentials: + tokenUrl: https://auth.vectara.io/oauth2/token + scopes: {} + ApiKeyAuth: + type: apiKey + in: header + name: x-api-key + schemas: + CorpusKey: + description: A user-provided key for a corpus. + type: string + example: my-corpus + pattern: '[a-zA-Z0-9_\=\-]+$' + maxLength: 50 + FilterAttribute: + description: Defines a filter attribute that can be used to filter search results + based on document metadata for precise retrieval. + type: object + properties: + name: + description: The JSON path of the filter attribute in a document or document + part metadata. + type: string + example: Title + level: + description: Indicates whether this is a document or document part metadata + filter. + type: string + enum: + - document + - part + example: document + description: + description: Description of the filter. May be omitted. + type: string + example: The title of the document. indexed: description: Indicates whether an index should be created for the filter. Creating an index will improve query latency when using the filter. @@ -8310,6 +8919,7 @@ components: CustomDimensions: description: The custom dimensions as additional weights. type: object + nullable: true additionalProperties: type: number format: double @@ -8330,6 +8940,16 @@ components: additionalProperties: true example: part.rank: 9000 + table_id: + description: The ID of the table that this document part is summarizing. + type: string + nullable: true + example: billing_table_111 + image_id: + description: The ID of the image that this document part is summarizing. + type: string + nullable: true + example: image_1 context: description: The context text for the document part. type: string @@ -8532,11 +9152,11 @@ components: example: part.rank: 9000 table_id: - description: The ID of the table that this document part belongs to. + description: The ID of the table that this document part is summarizing. type: string example: billing_table_111 image_id: - description: The ID of the image that this document part belongs to. + description: The ID of the image that this document part is summarizing. type: string example: image_1 context: @@ -8821,8 +9441,76 @@ components: metadata: null section_type: social priority: medium + BulkDeleteAsyncResponse: + description: Response when async=true. Operation queued, returns immediately + (HTTP 202). + type: object + properties: + response_type: + type: string + const: async + description: Indicates this is an async response. + job_id: + type: string + pattern: job_.+$ + description: Job ID to track the bulk delete operation via the Jobs API. + example: job_bulk_del_123456 + cutoff_timestamp: + type: string + format: date-time + description: ISO 8601 timestamp captured at workflow launch. Only documents + created or updated before this timestamp will be deleted. + example: '2025-12-18T15:30:00Z' + required: + - response_type + - job_id + - cutoff_timestamp + BulkDeleteSyncSuccessResponse: + description: Response when async=false and operation completes successfully + (HTTP 200). + type: object + properties: + response_type: + type: string + const: success + description: Indicates this is a successful sync response. + job_id: + type: string + pattern: job_.+$ + description: Job ID to track the bulk delete operation via the Jobs API. + example: job_bulk_del_123456 + cutoff_timestamp: + type: string + format: date-time + description: ISO 8601 timestamp captured at workflow launch. Only documents + created or updated before this timestamp will be deleted. + example: '2025-12-18T15:30:00Z' + deleted_count: + type: integer + format: int64 + description: Number of documents successfully deleted. + example: 1523 + skipped_count: + type: integer + format: int64 + description: Number of documents skipped. + example: 0 + required: + - response_type + - job_id + - cutoff_timestamp + - deleted_count + - skipped_count BulkDeleteDocumentsResponse: - description: 'Response containing the job ID for tracking the bulk delete operation. + description: 'Response for bulk delete operations. Structure varies based on + async/sync mode. + + + **Async mode (async=true)**: Returns HTTP 202 immediately with job_id to track + progress + + **Sync mode (async=false)**: Returns HTTP 200 after completion with deletion + counts **Important: Best-Effort Operation** @@ -8862,23 +9550,14 @@ components: 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 + oneOf: + - $ref: '#/components/schemas/BulkDeleteAsyncResponse' + - $ref: '#/components/schemas/BulkDeleteSyncSuccessResponse' + discriminator: + propertyName: response_type + mapping: + async: '#/components/schemas/BulkDeleteAsyncResponse' + success: '#/components/schemas/BulkDeleteSyncSuccessResponse' UpdateDocumentRequest: description: Schema for updating the document. For PUT requests, the request body metadata replaces the existing metadata. For PATCH requests, the request @@ -9057,6 +9736,18 @@ components: description: Weight to apply to this field during scoring (higher values increase importance of this field). default: 1 + fuzzy: + type: boolean + default: true + description: Whether to apply fuzzy matching for typo tolerance. + prefix: + type: integer + minimum: 1 + default: 3 + nullable: true + description: Minimum query length to enable prefix matching. Set to null + to disable prefix matching. Prefix matching allows finding documents where + the field value starts with the query text. required: - field - query @@ -9217,6 +9908,12 @@ components: format: int32 example: 0 minimum: 0 + corpus_key: + description: The corpus key that this search result originated from. For + queries across multiple corpora, this identifies which corpus the result + came from. + type: string + example: fin_docs QueryWarning: type: string description: "Non-fatal warnings that occurred during query processing.\n *\ @@ -9453,6 +10150,11 @@ components: default: true description: If true, the reranker will use text with context (see "context_configuration") for scoring. + instructions: + type: string + description: Instructions for instruction-following rerankers that guide + relevance scoring behavior. Only applicable to rerankers that support + custom instructions. x-vectaraParents: - SearchReranker UserFunctionReranker: @@ -10294,6 +10996,15 @@ components: description: Whether the model requires strict role alternation in conversations. When true, consecutive messages of the same role will be grouped together. type: boolean + LLMOwnership: + description: Indicates whether the LLM is provided by the platform or created + by the customer. Platform LLMs are pre-configured and cannot be modified or + deleted. Customer LLMs are created and managed by the customer. + type: string + enum: + - platform + - customer + example: platform 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 @@ -10345,6 +11056,10 @@ components: type: boolean capabilities: $ref: '#/components/schemas/LLMCapabilities' + ownership: + description: Indicates whether the LLM is provided by the platform (`platform`) + or created by the customer (`customer`). + $ref: '#/components/schemas/LLMOwnership' prompts: description: List of prompts that the model can use. This is deprecated; see `/v2/generation_presets` instead. @@ -10585,10 +11300,19 @@ components: gemini-2.0-experimental-1219, etc). type: string uri: - description: The URI endpoint for the Vertex AI API + description: "The base URI for the Gemini API. You can provide URIs in various\ + \ formats \u2014 the system will normalize them automatically, stripping\ + \ any model path, method suffix, or query parameters.\n\n**Vertex AI**\ + \ (for service account auth): Provide the project/location base URI. Example:\ + \ `https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR-PROJECT/locations/us-central1`\n\ + \n**Google AI Studio** (for API key auth): Provide the Generative Language\ + \ API base URI. Example: `https://generativelanguage.googleapis.com/v1beta`\n\ + \nFull URIs copied from Google docs also work \u2014 the model path and\ + \ `:generateContent` suffix will be stripped and rebuilt automatically\ + \ from the `model` field.\n" type: string format: uri - example: https://aiplatform.googleapis.com/v1/projects/my-project/locations/us-central1 + example: https://us-central1-aiplatform.googleapis.com/v1/projects/my-project/locations/us-central1 auth: $ref: '#/components/schemas/VertexAiAuth' test_model_parameters: @@ -10890,7 +11614,12 @@ components: type: string minLength: 1 uri: - description: The API endpoint for this LLM. + description: 'The base URI for the Gemini API. Accepts Vertex AI or Google + AI Studio URIs in any format. + + See the create endpoint for full details and examples. + + ' type: string format: uri description: @@ -11686,6 +12415,8 @@ components: - agent_viewer - agent_developer - agent_user + - pipeline_administrator + - pipeline_viewer CorpusRole: description: Corpus-specific role assignment. type: object @@ -11790,12 +12521,14 @@ components: username: description: The username for the user. type: string + maxLength: 128 enabled: description: Indicates whether the user is enabled or disabled. type: boolean description: description: The description of the user. type: string + maxLength: 255 created_at: description: When the user was created. type: string @@ -11843,9 +12576,11 @@ components: username: description: The username for the user. The value defaults to the email. type: string + maxLength: 128 description: description: The description of the user. type: string + maxLength: 255 api_roles: description: The customer-level role names assigned to the user. type: array @@ -11888,6 +12623,7 @@ components: description: description: The description of the user. type: string + maxLength: 255 ApiKeyRole: description: 'Role of the API key. A serving API key can only perform query type requests on its corpora. A serving and indexing key can perform both @@ -12315,6 +13051,23 @@ components: ' type: string + ToolPermissions: + description: The permissions that will be granted to the agent's dedicated service + account when this tool is added to an agent. + type: object + properties: + corpora_query: + description: When true, the tool grants query permissions on corpora specified + in its configuration. + type: boolean + corpora_index: + description: When true, the tool grants index permissions on corpora specified + in its configuration. + type: boolean + corpus_developer: + description: When true, the tool grants corpus developer permissions, allowing + the agent to list available corpora. + type: boolean ToolBase: description: Base properties shared by all tool types. type: object @@ -12350,6 +13103,32 @@ components: tool. type: object additionalProperties: true + category: + description: Functional category of the tool (e.g., retrieval, artifacts, + indexing, utilities, orchestration). + type: string + lineage: + description: The base tool name without version suffix. Groups versioned + variants of the same tool together. + type: string + example: corpora_search + version: + description: Date-based version identifier in YYYY-MM-DD format. Null for + unversioned tools. + type: string + example: '2026-02-23' + tool_groups: + description: Groups this tool belongs to. Tools in the same group form a + functional set and should be added or removed together by default. + type: array + items: + type: string + example: + - document_ingestion + permissions: + description: The permissions granted to the agent's service account when + this tool is added to an agent. + $ref: '#/components/schemas/ToolPermissions' required: - id - name @@ -12513,6 +13292,16 @@ components: - Import from `typing` module when using complex types + + **Docstring Parameter Descriptions:** + + - Use docstrings to provide descriptions for parameters (Google, NumPy, ReST, + and Epydoc styles are supported) + + - Parameter descriptions are extracted and included in the input schema + + - This gives agents better context about how to use each parameter + ' type: object properties: @@ -12714,6 +13503,22 @@ components: - type x-vectaraParents: - Tool + GetDocumentTextTool: + description: A tool that fetches the full text content of a document from a + corpus and stores it as an artifact. + allOf: + - $ref: '#/components/schemas/ToolBase' + - type: object + properties: + type: + description: This should always be `get_document_text`. + type: string + default: get_document_text + example: get_document_text + required: + - type + x-vectaraParents: + - Tool Tool: description: A tool that can be used by agents to perform specific actions or operations. @@ -12734,6 +13539,7 @@ components: artifact_grep: '#/components/schemas/ArtifactGrepTool' image_read: '#/components/schemas/ImageReadTool' document_conversion: '#/components/schemas/DocumentConversionTool' + get_document_text: '#/components/schemas/GetDocumentTextTool' oneOf: - $ref: '#/components/schemas/DynamicVectaraTool' - $ref: '#/components/schemas/McpTool' @@ -12748,6 +13554,7 @@ components: - $ref: '#/components/schemas/ArtifactGrepTool' - $ref: '#/components/schemas/ImageReadTool' - $ref: '#/components/schemas/DocumentConversionTool' + - $ref: '#/components/schemas/GetDocumentTextTool' ListToolsResponse: description: Response containing a list of tools. type: object @@ -12812,22 +13619,51 @@ components: \ for automatic schema discovery.\n\n**Parameters**: Passed as keyword\ \ arguments matched to the function signature.\n\n**Return types**: Can\ \ return any JSON-serializable type (strings, numbers, booleans, lists,\ - \ or objects).\n\n**Example: Returning a number**\n```python\ndef process(x:\ - \ int, y: int) -> int:\n return x + y\n```\n\n**Example: Returning\ - \ a string**\n```python\ndef process(name: str) -> str:\n return f\"\ - Hello, {name}!\"\n```\n\n**Example: Returning a boolean**\n```python\n\ - def process(value: int, threshold: int) -> bool:\n return value > threshold\n\ - ```\n\n**Example: Returning a list**\n```python\nfrom typing import List\n\ - \ndef process(items: List[str]) -> List[str]:\n return sorted(items)\n\ - ```\n\n**Example: Returning an object (dict)**\n```python\ndef process(order_count:\ - \ int, total_revenue: float, days_active: int = 1) -> dict:\n score\ - \ = (order_count * 10 + total_revenue * 0.1) / days_active\n return\ - \ {'score': round(score, 2), 'rating': 'high' if score > 100 else 'low'}\n\ - ```\n\nFor complex types, use the `typing` module:\n\n```python\nfrom\ - \ typing import List, Dict\n\ndef process(items: List[str], config: Dict[str,\ - \ float]) -> dict:\n count = len(items)\n multiplier = config.get('multiplier',\ - \ 1.0)\n return {'count': count, 'adjusted': count * multiplier}\n\ - ```\n" + \ or objects).\n\n**Parameter Descriptions**: Use docstrings to provide\ + \ descriptions for parameters (Google, NumPy, ReST, and Epydoc styles\ + \ are supported). These descriptions are automatically extracted and included\ + \ in the input schema, giving agents better context about how to use each\ + \ parameter.\n\n**Example with Google-style docstring:**\n```python\n\ + def process(order_count: int, total_revenue: float, days_active: int =\ + \ 1) -> dict:\n \"\"\"Calculate customer engagement score.\n\n Args:\n\ + \ order_count: The number of orders placed by the customer.\n \ + \ total_revenue: Total revenue in USD from the customer.\n \ + \ days_active: Number of days the customer was active (default: 1).\n\ + \n Returns:\n A dict with the calculated score.\n \"\"\"\n\ + \ score = (order_count * 10 + total_revenue * 0.1) / days_active\n\ + \ return {'score': round(score, 2)}\n```\n\nThis produces an input\ + \ schema with descriptions:\n```json\n{\n \"type\": \"object\",\n \"\ + properties\": {\n \"order_count\": {\n \"type\": \"integer\",\n\ + \ \"description\": \"The number of orders placed by the customer.\"\ + \n },\n \"total_revenue\": {\n \"type\": \"number\",\n \ + \ \"description\": \"Total revenue in USD from the customer.\"\n },\n\ + \ \"days_active\": {\n \"type\": \"integer\",\n \"description\"\ + : \"Number of days the customer was active (default: 1).\"\n }\n },\n\ + \ \"required\": [\"order_count\", \"total_revenue\"]\n}\n```\n\n**Example:\ + \ Returning a number**\n```python\ndef process(x: int, y: int) -> int:\n\ + \ return x + y\n```\n\n**Example: Returning a string**\n```python\n\ + def process(name: str) -> str:\n return f\"Hello, {name}!\"\n```\n\n\ + **Example: Returning a boolean**\n```python\ndef process(value: int, threshold:\ + \ int) -> bool:\n return value > threshold\n```\n\n**Example: Returning\ + \ a list**\n```python\nfrom typing import List\n\ndef process(items: List[str])\ + \ -> List[str]:\n return sorted(items)\n```\n\n**Example: Returning\ + \ an object (dict)**\n```python\ndef process(order_count: int, total_revenue:\ + \ float, days_active: int = 1) -> dict:\n score = (order_count * 10\ + \ + total_revenue * 0.1) / days_active\n return {'score': round(score,\ + \ 2), 'rating': 'high' if score > 100 else 'low'}\n```\n\nFor complex\ + \ types, use the `typing` module:\n\n```python\nfrom typing import List\n\ + \ndef process(items: List[str], count: int) -> dict:\n return {'total':\ + \ len(items) * count}\n```\n\n**Object parameters must use TypedDict**:\ + \ Bare `dict` and `Dict[K, V]` parameters are not supported and will be\ + \ rejected during validation. All object-typed parameters must use `TypedDict`\ + \ to define explicit fields. This ensures the agent receives a clear schema\ + \ for each parameter.\n\n```python\nfrom typing import TypedDict, Optional\n\ + \nclass Adjustment(TypedDict, total=False):\n monthly_premium: float\n\ + \ target_income_age: int\n illustrated_rate: float\n\ndef process(client_id:\ + \ str, adjustment: Adjustment) -> dict:\n return {\"client_id\": client_id,\ + \ \"adjustment\": adjustment}\n```\n\nTypedDict supports inheritance,\ + \ `Optional` fields, nested TypedDicts, and `total=False` to make all\ + \ fields optional.\n" type: string minLength: 1 maxLength: 100000 @@ -12881,8 +13717,16 @@ components: default: python example: python code: - description: The Python 3.12 code for the function. Must define a process() + description: 'The Python 3.12 code for the function. Must define a `process()` entry point. + + Object parameters must use `TypedDict`; bare `dict` and `Dict[K, V]` parameters + are rejected. + + See the `code` field on `CreateLambdaToolRequest` for full details and + examples. + + ' type: string minLength: 1 maxLength: 100000 @@ -13068,6 +13912,12 @@ components: description: 'Updated code for the lambda function. Use function parameter type annotations for automatic schema discovery. + Object parameters must use `TypedDict`; bare `dict` and `Dict[K, V]` parameters + are rejected. + + See the `code` field on `CreateLambdaToolRequest` for full details and + examples. + ' type: string minLength: 1 @@ -13577,19 +14427,11 @@ components: additionalProperties: false 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. - - ' + 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 @@ -13609,50 +14451,40 @@ components: 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"} - - + description: 'The corpus to search. Can be either a static string (e.g. + "my-corpus") or an EagerReference object (e.g. {"$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. - - ' + 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' + allOf: + - $ref: '#/components/schemas/CustomDimensions' + nullable: true + default: null 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. - - ' + description: 'The filter to narrow search results. Can be either a static + string (e.g. "doc.department = ''engineering''") or an EagerReference + object (e.g. {"$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. + 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 + default: 0.025 semantics: - $ref: '#/components/schemas/SearchSemantics' + allOf: + - $ref: '#/components/schemas/SearchSemantics' + default: default query: description: Query override for this specific corpus. type: string @@ -13683,11 +14515,12 @@ components: minimum: 1 default: 10 context_configuration: - $ref: '#/components/schemas/ContextConfiguration' + allOf: + - $ref: '#/components/schemas/ContextConfiguration' + nullable: true + default: null reranker: $ref: '#/components/schemas/SearchReranker' - required: - - corpora AgentCorporaSearchQueryConfiguration: title: AgentCorporaSearchQueryConfiguration description: Agent-specific query configuration that supports eager references. @@ -13697,10 +14530,14 @@ components: search: $ref: '#/components/schemas/AgentSearchCorporaParameters' generation: - $ref: '#/components/schemas/GenerationParameters' + allOf: + - $ref: '#/components/schemas/GenerationParameters' + default: + enabled: false save_history: description: Whether to save the query to history. type: boolean + default: false required: - search InlineCorporaSearchToolConfiguration: @@ -14004,8 +14841,8 @@ components: - llm_controlled - persistent - ephemeral - default: llm_controlled - example: llm_controlled + default: ephemeral + example: ephemeral SubAgentConfiguration: description: User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent. @@ -14020,6 +14857,7 @@ components: Can contain any key-value pairs. type: object additionalProperties: true + default: {} example: source: parent_agent task_type: code_review @@ -14230,7 +15068,68 @@ components: description_template: $ref: '#/components/schemas/ToolDescriptionTemplate' argument_override: - $ref: '#/components/schemas/DocumentConversionToolParameters' + $ref: '#/components/schemas/DocumentConversionToolParameters' + required: + - type + x-vectaraParents: + - AgentToolConfiguration + GetDocumentTextParameters: + description: Configurable parameters for the get document text tool. If not + overridden, they will be required by the LLM to fill in. + type: object + properties: + document_id: + description: The document ID of the document to fetch text from. + type: string + minLength: 1 + example: doc_12345 + corpus_key: + description: The corpus key containing the document. + type: string + minLength: 1 + example: my-corpus + additionalProperties: false + GetDocumentTextConfiguration: + description: User-configurable settings for the get document text tool. These + parameters are never exposed to the agent. + type: object + properties: + metadata: + type: object + description: Configuration for document metadata retrieval. + properties: + include: + type: boolean + description: Whether to include document metadata in the response. If + false, metadata artifact will not be created. + default: true + exclude_paths: + type: array + items: + type: string + description: List of JSONPath expressions for metadata fields to exclude + from the returned metadata. + default: [] + example: + - $.internal.processedAt + - $.debug + InlineGetDocumentTextToolConfiguration: + title: InlineGetDocumentTextToolConfiguration + description: A get document text tool configuration defined inline in the agent + for fetching document text content from a corpus. + type: object + properties: + type: + type: string + description: The type of tool configuration, which is always 'get_document_text' + for inline get document text tool configurations. + default: get_document_text + description_template: + $ref: '#/components/schemas/ToolDescriptionTemplate' + argument_override: + $ref: '#/components/schemas/GetDocumentTextParameters' + tool_configuration: + $ref: '#/components/schemas/GetDocumentTextConfiguration' required: - type x-vectaraParents: @@ -14254,6 +15153,7 @@ components: artifact_grep: '#/components/schemas/InlineArtifactGrepToolConfiguration' image_read: '#/components/schemas/InlineImageReadToolConfiguration' document_conversion: '#/components/schemas/InlineDocumentConversionToolConfiguration' + get_document_text: '#/components/schemas/InlineGetDocumentTextToolConfiguration' oneOf: - $ref: '#/components/schemas/InlineDynamicVectaraToolConfiguration' - $ref: '#/components/schemas/InlineMcpToolConfiguration' @@ -14267,6 +15167,7 @@ components: - $ref: '#/components/schemas/InlineArtifactGrepToolConfiguration' - $ref: '#/components/schemas/InlineImageReadToolConfiguration' - $ref: '#/components/schemas/InlineDocumentConversionToolConfiguration' + - $ref: '#/components/schemas/InlineGetDocumentTextToolConfiguration' example: - type: web_search argument_override: @@ -14276,6 +15177,44 @@ components: - stackoverflow.com exclude_domains: - spam.com + AgentSkill: + title: AgentSkill + description: 'A skill that provides progressively disclosed instructions to + an agent; it allows the agent to access more instructions without + + always being within the system scope. Additionally, skills are explicitly + loaded as an input event rather than normal text input event. + + Skills are defined at the agent level and can be filtered per step via allowed_skills. + + The skill key and description are shown to the LLM in the system message; + + the full content is sent as a user message when the skill is invoked via the + invoke_skill tool. + + ' + type: object + properties: + description: + description: A brief description of what the skill does, shown to the agent + in its instructions. + type: string + maxLength: 500 + example: Reviews code for best practices, bugs, and security issues. + content: + description: 'The full instruction content for this skill. + + This is NOT shown in the instructions by default; it is loaded when the + skill is invoked. + + ' + type: string + maxLength: 50000 + example: When reviewing code, check for security vulnerabilities, performance + issues, and adherence to best practices... + required: + - description + - content RetryConfiguration: title: RetryConfiguration description: Configuration for automatic retry of failed LLM requests with exponential @@ -14391,8 +15330,8 @@ components: - AgentStepInstruction AgentStepInstruction: title: AgentStepInstruction - description: An instruction that can be used in an agent step, either by reference - or defined inline. + description: An instruction that can be used in an agent step, either by reference, + defined inline, or using a Vectara built-in instruction. discriminator: propertyName: type mapping: @@ -14450,87 +15389,473 @@ components: Note: When using structured outputs, the agent can still use tools normally. - The schema constraint only applies to the agent''s final text response. + 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 + formatted. + + + The output parser determines how the agent''s responses are processed before + being returned to the user. + + ' + discriminator: + propertyName: type + mapping: + default: '#/components/schemas/DefaultOutputParser' + structured: '#/components/schemas/StructuredOutputParser' + oneOf: + - $ref: '#/components/schemas/DefaultOutputParser' + - $ref: '#/components/schemas/StructuredOutputParser' + TemplatedReminder: + title: TemplatedReminder + description: A templated reminder with a Velocity template that is compiled + at session start and injected into messages matching the specified hooks. + type: object + properties: + type: + description: The type of reminder. + type: string + default: templated + example: templated + template_type: + $ref: '#/components/schemas/TemplateType' + template: + $ref: '#/components/schemas/InstructionTemplate' + hooks: + description: Event types that trigger this reminder to be appended to the + corresponding message. + type: array + items: + type: string + enum: + - input_message + - tool_output + minItems: 1 + example: + - tool_output + required: + - type + - template + - hooks + x-vectaraParents: + - AgentStepReminder + AgentStepReminder: + title: AgentStepReminder + description: A reminder that is injected into the agent conversation when specific + event types occur. + discriminator: + propertyName: type + mapping: + templated: '#/components/schemas/TemplatedReminder' + oneOf: + - $ref: '#/components/schemas/TemplatedReminder' + NextStep: + title: NextStep + description: A conditional transition to another step. + type: object + properties: + condition: + description: "UserFn expression evaluating to boolean.\nUses the `get()`\ + \ function with JSONPath to access the step transition context.\nSee https://docs.vectara.com/docs/search-and-retrieval/rerankers/user-defined-function-reranker\ + \ for the UserFn language reference.\nOmit for catch-all/default routing.\n\ + \nThe context available to `get()` has the following shape:\n```\n{\n\ + \ \"agent\": {\n \"name\": \"...\",\n \"key\": \"...\",\n \"\ + description\": \"...\",\n \"metadata\": { ... }\n },\n \"session\"\ + : {\n \"key\": \"...\",\n \"name\": \"...\",\n \"description\"\ + : \"...\",\n \"metadata\": { ... }\n },\n \"currentDate\": \"2024-01-15T10:35:00Z\"\ + ,\n \"tools\": {\n \"\": {\n \"outputs\": {\n\ + \ \"latest\": { ... }\n }\n }\n },\n \"output\": { \"\ + text\": \"...\" }\n}\n```\n\n- `$.agent.metadata.` \u2014 agent metadata\ + \ fields\n- `$.session.metadata.` \u2014 session metadata fields\n\ + - `$.tools..outputs.latest.` \u2014 latest tool\ + \ output fields\n- `$.output.text` \u2014 LLM text output (when output_parser\ + \ is `default`)\n- `$.output.` \u2014 LLM structured output fields\ + \ (when output_parser is `structured`)\n" + type: string + example: get('$.output.intent') == 'sales' + step_name: + description: 'Name of the step to transition to. + + Must reference a step defined in the agent''s steps list. + + ' + type: string + example: sales_handler + required: + - step_name + FirstAgentStep: + title: FirstAgentStep + description: 'The entry point step for an agent, with a unique name. + + See AgentStep for full step documentation. + + ' + type: object + properties: + name: + description: Unique identifier for this step within the agent. Must not + conflict with any key in the steps map. + type: string + minLength: 1 + maxLength: 255 + default: first_step + example: classifier + type: + description: Deprecated. This field is ignored and exists only for backward + compatibility. + type: string + deprecated: true + default: conversational + instructions: + description: 'List of instructions that guide the agent''s behavior in this + step. + + ' + type: array + items: + $ref: '#/components/schemas/AgentStepInstruction' + output_parser: + allOf: + - $ref: '#/components/schemas/AgentOutputParser' + default: + type: default + reminders: + description: Reminders injected into conversation messages when specific + events occur. + type: array + items: + $ref: '#/components/schemas/AgentStepReminder' + default: [] + next_steps: + description: 'Conditional transitions to other steps. + + Evaluated in order; first matching condition is selected. + + A next_step without a condition acts as a catch-all/default. + + If no condition matches, the agent remains on the current step and the + agent ends output. + + ' + type: array + items: + $ref: '#/components/schemas/NextStep' + allowed_tools: + description: 'List of tool configuration names that this step is allowed + to use. + + If not specified (null), all tools defined in the agent''s tool_configurations + are allowed. + + If set to an empty array, no tools are allowed and the agent can only + respond with text. + + ' + type: array + items: + type: string + example: + - customer_search + - web_search + allowed_skills: + description: 'List of skill names that this step is allowed to use. + + If not specified (null), all skills defined in the agent''s skills map + are allowed. + + If set to an empty array, no skills are available and the invoke_skill + tool is not shown. + + ' + type: array + items: + type: string + example: + - code_review + - debugging + reentry_step: + description: 'Step name to resume at when the session receives the next + user message. + + If not specified, the session re-enters at this step (i.e., stays here). + + Set to the agent''s first_step_name to always restart from the beginning. + + ' + type: string + example: classifier + required: + - name + - instructions + - output_parser + AgentStep: + title: AgentStep + description: 'A step in an agent''s execution flow that defines how the agent + processes and responds to input. + + The step name comes from the map key in the agent''s steps map. + + + A step gets all previous session history in the agent session, including any + prior agent steps, + + then the agent decides what to do in this step based on the given instructions. + Finally, the + + agent either stops working if there is no next step defined or continues to + the first next step + + that matches the condition. + + + An agent always executes steps serially. If parallel behavior is desired, + giving the agent + + other agents as tools is usually the most correct approach. + + + Each step can only use tools defined by its `allowed_tools` list; if this + list is not specified + + then all tools known to the agent are allowed. + + ' + type: object + properties: + type: + description: Deprecated. This field is ignored and exists only for backward + compatibility. + type: string + deprecated: true + default: conversational + instructions: + description: 'List of instructions that guide the agent''s behavior in this + step. + + If omitted, the agent may behave oddly as it has no system instructions + and + + will just attempt to respond to user input and previous session history. + + ' + type: array + items: + $ref: '#/components/schemas/AgentStepInstruction' + output_parser: + description: 'How to parse and format the agent''s output. + + Determines which event type is emitted. + + Defaults to ''default'' parser if not specified. + + ' + allOf: + - $ref: '#/components/schemas/AgentOutputParser' + default: + type: default + reminders: + description: Reminders injected into conversation messages when specific + events occur. Useful for keeping the agent on-task during long conversations. + type: array + items: + $ref: '#/components/schemas/AgentStepReminder' + default: [] + next_steps: + description: 'Conditional transitions to other steps. + + Evaluated in order; first matching condition is selected. + + A next_step without a condition acts as a catch-all/default. + + If no condition matches, the agent remains on the current step and the + agent ends output. + + ' + type: array + items: + $ref: '#/components/schemas/NextStep' + allowed_tools: + description: 'List of tool configuration names that this step is allowed + to use. + + If not specified (null), all tools defined in the agent''s tool_configurations + are allowed. + + If set to an empty array, no tools are allowed and the agent can only + respond with text. + + Tool names must reference keys in the agent''s tool_configurations map. + + ' + type: array + items: + type: string + example: + - customer_search + - web_search + allowed_skills: + description: 'List of skill names that this step is allowed to use. + + If not specified (null), all skills defined in the agent''s skills map + are allowed. + + If set to an empty array, no skills are available and the invoke_skill + tool is not shown. + + ' + type: array + items: + type: string + example: + - code_review + - debugging + reentry_step: + description: 'Step name to resume at when the session receives the next + user message. + + If not specified, the session re-enters at this step (i.e., stays here). + + Set to the agent''s first_step_name to always restart from the beginning. + + ' + type: string + example: classifier + required: + - instructions + - output_parser + CompactionConfig: + title: CompactionConfig + description: Configuration for automatic context compaction. + type: object + properties: + enabled: + description: Enable automatic context compaction. + type: boolean + default: true + example: true + threshold_percent: + description: Context usage % (50-95) at which compaction is applied. + type: integer + minimum: 50 + maximum: 95 + default: 80 + example: 80 + keep_recent_inputs: + description: Number of recent inputs to keep verbatim (not compacted). + type: integer + minimum: 1 + default: 3 + example: 3 + compaction_message: + description: Custom additional instructions for the compaction summarization + prompt. + type: string + maxLength: 10000 + tool_event_policy: + description: How tool events are included in the compaction input. + type: string + enum: + - exclude + - include_outputs + - include_all + default: include_outputs + ToolOutputOffloadingConfiguration: + title: ToolOutputOffloadingConfiguration + description: 'Configuration for offloading large tool outputs to artifacts. + + When tools produce outputs exceeding the size threshold, the output is stored + + as an artifact and replaced with a compact reference. The agent can then use + + artifact_read or artifact_grep to access the full content on demand. + + All fields are optional; omitted fields use model-inferred defaults. + + ' + type: object + properties: + enabled: + description: 'Whether tool output offloading is enabled. If not specified, + defaults to true + + when the agent has artifact_read configured, false otherwise. + + ' + type: boolean + example: true + context_percentage: + description: 'Percentage of the model''s context window to use as the offloading + threshold, + + estimated at 4 characters per token. This is a rough heuristic that varies + + across LLMs. The resulting byte threshold is clamped between min_threshold_bytes + + and max_threshold_bytes, so this percentage only has an effect when it + produces + + a value lower than max_threshold_bytes. + + ' + type: number + format: double + minimum: 0.01 + maximum: 1 + default: 0.05 + example: 0.05 + max_threshold_bytes: + description: 'Tool outputs above this size (in bytes) will always be offloaded. + Acts as a + + ceiling on the context_percentage-derived threshold. For large-context + models, - When streaming, the structured output is delivered as a single complete event + max_threshold_bytes is typically the effective threshold since the - rather than being streamed in chunks. + context_percentage calculation exceeds it. - ' - 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 - formatted. + ' + type: integer + format: int64 + minimum: 1024 + example: 32768 + min_threshold_bytes: + description: 'Tool outputs below this size (in bytes) will never be offloaded. + Acts as a + floor on the context_percentage-derived threshold, ensuring small outputs + are - The output parser determines how the agent''s responses are processed before - being returned to the user. + never offloaded even for models with small context windows. - ' - discriminator: - 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. - 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: - $ref: '#/components/schemas/AgentStepInstruction' - output_parser: - $ref: '#/components/schemas/AgentOutputParser' - required: - - type - - instructions - - output_parser - x-vectaraParents: - - AgentStep - AgentStep: - 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: '#/components/schemas/ConversationalAgentStep' - oneOf: - - $ref: '#/components/schemas/ConversationalAgentStep' + ' + type: integer + format: int64 + minimum: 1024 + example: 4096 Agent: description: An AI agent that can use tools to provide intelligent responses and actions. @@ -14557,10 +15882,54 @@ components: type: corpora_search argument_override: query: customer support documentation + skills: + description: 'A map of skills available to the agent, keyed by skill name. + + Skills provide specialized instructions that can be invoked during agent + execution. + + The skill list (name + description) is shown in the system message; content + is loaded on invocation. + + ' + type: object + additionalProperties: + $ref: '#/components/schemas/AgentSkill' + nullable: true + example: + code_review: + description: Reviews code for best practices and security issues. + content: When reviewing code, focus on... model: $ref: '#/components/schemas/AgentModel' first_step: - $ref: '#/components/schemas/AgentStep' + $ref: '#/components/schemas/FirstAgentStep' + first_step_name: + description: The name of the first step. Matches first_step.name. + type: string + example: classifier + steps: + description: 'A map of additional named steps keyed by step name. + + The first_step can transition to steps defined here via next_steps. + + ' + type: object + additionalProperties: + $ref: '#/components/schemas/AgentStep' + example: + sales_handler: + instructions: + - type: inline + template: Handle sales inquiries + output_parser: + type: default + support_handler: + instructions: + - type: inline + template: Handle support requests + output_parser: + type: default metadata: description: Arbitrary metadata associated with the agent for customization and configuration. @@ -14575,6 +15944,12 @@ components: type: boolean default: true example: true + compaction: + description: Configuration for automatic context compaction when the session + approaches context limits. + $ref: '#/components/schemas/CompactionConfig' + tool_output_offloading: + $ref: '#/components/schemas/ToolOutputOffloadingConfiguration' created_at: description: Timestamp when the agent was created. type: string @@ -14607,7 +15982,12 @@ components: - agents - metadata CreateAgentRequest: - description: Request object for creating a new agent. + description: 'Request object for creating a new agent. + + The entry point must be defined via first_step_name (preferred) or first_step + (deprecated). + + ' type: object properties: key: @@ -14633,10 +16013,72 @@ components: type: corpora_search argument_override: query: customer support documentation + skills: + description: 'A map of skills available to the agent, keyed by skill name. + + Skills provide specialized instructions that can be invoked during agent + execution. + + ' + type: object + additionalProperties: + $ref: '#/components/schemas/AgentSkill' + nullable: true + example: + code_review: + description: Reviews code for best practices. + content: When reviewing code... model: $ref: '#/components/schemas/AgentModel' first_step: - $ref: '#/components/schemas/AgentStep' + description: 'Deprecated: prefer defining all steps in the steps map and + using first_step_name. + + Inline definition of the entry point step. Can be combined with first_step_name + + only if first_step_name equals first_step.name AND steps[first_step.name] + is + + identical to first_step. + + ' + deprecated: true + $ref: '#/components/schemas/FirstAgentStep' + first_step_name: + description: 'Name of a step in the steps map to use as the entry point. + This is the preferred + + way to define the entry point - define all steps in the steps map and + reference + + the entry point by name here. + + ' + type: string + minLength: 1 + example: classifier + steps: + description: 'A map of named steps keyed by step name. + + Steps can transition to other steps defined here via next_steps. + + ' + type: object + additionalProperties: + $ref: '#/components/schemas/AgentStep' + example: + sales_handler: + instructions: + - type: inline + template: Handle sales inquiries + output_parser: + type: default + support_handler: + instructions: + - type: inline + template: Handle support requests + output_parser: + type: default metadata: description: Arbitrary metadata associated with the agent for customization and configuration. @@ -14652,72 +16094,166 @@ components: type: boolean default: true example: true + compaction: + description: Configuration for automatic context compaction when the session + approaches context limits. + $ref: '#/components/schemas/CompactionConfig' + tool_output_offloading: + $ref: '#/components/schemas/ToolOutputOffloadingConfiguration' required: - name - tool_configurations - model - - first_step - ReplaceAgentRequest: - description: Request object for replacing an existing agent completely. + UpdateFirstAgentStep: + title: UpdateFirstAgentStep + description: 'Partial update for the first (entry point) step. Omitted fields + are preserved. + + Includes an optional name field to rename the first step. + + ' type: object properties: name: - $ref: '#/components/schemas/AgentName' - description: - description: A detailed description of the agent's purpose and capabilities. + description: Rename the first step. If omitted, the name is preserved. 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: - $ref: '#/components/schemas/AgentToolConfiguration' - nullable: true - example: - customer_search: - type: corpora_search - argument_override: - query: customer support documentation - model: - $ref: '#/components/schemas/AgentModel' - first_step: - $ref: '#/components/schemas/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 + type: + description: Deprecated. Previously used as a discriminator. + type: string + default: conversational + deprecated: true + instructions: + description: List of instructions that guide the agent's behavior. Set to + null to clear all instructions. + type: array + nullable: true + items: + $ref: '#/components/schemas/AgentStepInstruction' + output_parser: + $ref: '#/components/schemas/AgentOutputParser' + reminders: + description: Reminders injected into conversation messages. Set to null + to clear all reminders. + type: array + nullable: true + items: + $ref: '#/components/schemas/AgentStepReminder' + next_steps: + description: Conditional transitions to other steps. Set to null to clear. + type: array + nullable: true + items: + $ref: '#/components/schemas/NextStep' + allowed_tools: + description: Tool configuration names this step may invoke. Set to null + to clear. + type: array + nullable: true + items: + type: string + allowed_skills: + description: Skill names this step may use. Set to null to clear (allows + all skills). + type: array + nullable: true + items: + type: string + reentry_step: + description: 'Step name to resume at when the session receives the next + user message. + + Set to null to clear (re-enters at this step). + + ' + type: string + nullable: true + UpdateAgentStep: + title: UpdateAgentStep + description: 'Agent step for partial updates. Omitted fields are preserved. + + Nullable fields (instructions, reminders) can be set to null to clear them. + + ' + type: object + properties: + type: + description: Deprecated. Previously used as a discriminator. + type: string + default: conversational + deprecated: true + instructions: + description: List of instructions that guide the agent's behavior. Set to + null to clear all instructions. + type: array + nullable: true + items: + $ref: '#/components/schemas/AgentStepInstruction' + output_parser: + $ref: '#/components/schemas/AgentOutputParser' + reminders: + description: Reminders injected into conversation messages. Set to null + to clear all reminders. + type: array + nullable: true + items: + $ref: '#/components/schemas/AgentStepReminder' + next_steps: + description: Conditional transitions to other steps. Set to null to clear. + type: array + nullable: true + items: + $ref: '#/components/schemas/NextStep' + allowed_tools: + description: Tool configuration names this step may invoke. Set to null + to clear. + type: array + nullable: true + items: + type: string + allowed_skills: + description: Skill names this step may use. Set to null to clear (allows + all skills). + type: array + nullable: true + items: + type: string + reentry_step: + description: 'Step name to resume at when the session receives the next + user message. + + Set to null to clear (re-enters at this step). + + ' + type: string + nullable: true UpdateAgentRequest: - description: Request object for updating an existing agent. + description: 'Request object for updating an existing agent. Omitted fields + are preserved. + + Nullable fields (description, tool_configurations, metadata, enabled, guardrails) + + can be set to null to clear them. + + ' type: object properties: name: $ref: '#/components/schemas/AgentName' description: description: A detailed description of the agent's purpose and capabilities. + Set to null to clear. type: string + nullable: true 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. + description: 'A map of tool configurations available to the agent. Set to + null to clear all tools. + + Individual map values set to null will delete that tool configuration. + + ' type: object + nullable: true additionalProperties: $ref: '#/components/schemas/AgentToolConfiguration' nullable: true @@ -14726,14 +16262,44 @@ components: type: corpora_search argument_override: query: customer support documentation + skills: + description: 'A map of skills available to the agent. Set to null to clear + all skills. + + Individual map values set to null will delete that skill. + + ' + type: object + nullable: true + additionalProperties: + $ref: '#/components/schemas/AgentSkill' + nullable: true model: $ref: '#/components/schemas/AgentModel' first_step: - $ref: '#/components/schemas/AgentStep' + description: 'Deprecated: prefer updating steps directly via the steps map. + + Partial update to the current first step. Can be combined with first_step_name + + only if first_step_name equals first_step.name. + + ' + deprecated: true + $ref: '#/components/schemas/UpdateFirstAgentStep' + first_step_name: + description: 'Reassign the entry point to an existing step by name. This + is the preferred way + + to change the entry point. The named step must exist in the steps map. + + ' + type: string + minLength: 1 metadata: - description: Arbitrary metadata associated with the agent for customization - and configuration. + description: Arbitrary metadata associated with the agent. Set to null to + clear. type: object + nullable: true additionalProperties: true example: department: customer_service @@ -14741,9 +16307,38 @@ components: owner: support-team last_reviewed: '2024-01-15' enabled: - description: Whether the agent is enabled. + description: Whether the agent is enabled. Set to null to reset to default + (true). type: boolean + nullable: true example: true + compaction: + description: Configuration for automatic context compaction. Set to null + to clear. + $ref: '#/components/schemas/CompactionConfig' + nullable: true + tool_output_offloading: + $ref: '#/components/schemas/ToolOutputOffloadingConfiguration' + nullable: true + steps: + description: 'A map of additional named steps keyed by step name for partial + update. + + Only provided keys are modified; missing keys are preserved. + + Set a key''s value to null to delete that step. + + ' + type: object + nullable: true + additionalProperties: + $ref: '#/components/schemas/UpdateAgentStep' + nullable: true + example: + sales_handler: + instructions: + - type: inline + template: Handle sales inquiries AgentSessionKey: description: A unique key that identifies an agent session. type: string @@ -14751,6 +16346,52 @@ components: minLength: 1 maxLength: 50 example: customer_support_chat + InputTokens: + title: InputTokens + description: Input token usage details. + type: object + properties: + count: + description: Number of input tokens consumed. + type: integer + format: int64 + example: 120 + OutputTokens: + title: OutputTokens + description: Output token usage details. + type: object + properties: + count: + description: Number of output tokens generated. + type: integer + format: int64 + example: 30 + reasoning_tokens: + description: Number of tokens used for reasoning/thinking. + type: integer + format: int64 + example: 0 + SessionContextUsage: + title: SessionContextUsage + description: Token usage statistics for a session. + type: object + properties: + input_tokens: + $ref: '#/components/schemas/InputTokens' + output_tokens: + $ref: '#/components/schemas/OutputTokens' + total_tokens: + description: Total number of tokens used. + type: integer + format: int64 + example: 150 + model_context_window: + description: Maximum context window size in tokens for the model used by + this session. Can be used with input_tokens to calculate context utilization + percentage. + type: integer + format: int64 + example: 200000 AgentSession: description: A session for interacting with an agent, allowing conversation context. @@ -14776,6 +16417,16 @@ components: customer_id: '12345' priority: high channel: web_chat + current_step_name: + description: 'The step name the session will resume at on the next user + message. + + If null, the session starts at the agent''s first_step. + + ' + type: string + nullable: true + example: billing enabled: description: Whether the session is currently active and can accept new messages. @@ -14796,8 +16447,15 @@ components: type: string format: date-time example: '2024-01-15T10:30:00Z' + session_context_usage: + description: Context used in session. + $ref: '#/components/schemas/SessionContextUsage' + effective_compaction: + description: The compaction configuration snapshotted when the session was + created. + $ref: '#/components/schemas/CompactionConfig' required: - - id + - key - name - agent_key - enabled @@ -14855,6 +16513,23 @@ components: minimum: 0 default: 0 example: 60 + from_session: + description: Create a new session by forking an existing one. Compacts the + source history into a summary and copies artifacts. + type: object + properties: + agent_key: + description: Agent key of the source session (defaults to current agent). + type: string + session_key: + description: Session key of the source session. + type: string + compact_up_to_event_id: + description: Only compact events up to this event ID from the source. + If omitted, compacts all events. + type: string + required: + - session_key UpdateAgentSessionRequest: description: Request object for updating an existing agent session. type: object @@ -14887,6 +16562,27 @@ components: format: int64 minimum: 0 example: 60 + AgentEventBase: + description: Base properties shared by all agent event types. + type: object + properties: + id: + description: The unique identifier for the event. + type: string + pattern: aev_[0-9a-zA-Z_-]+$ + example: aev_user_001 + session_key: + $ref: '#/components/schemas/AgentSessionKey' + description: The key of the session this event belongs to. + created_at: + description: Timestamp when the event was created. + type: string + format: date-time + example: '2024-01-15T10:35:00Z' + required: + - id + - session_key + - created_at AgentTextInput: description: A text input for an agent message. type: object @@ -14905,51 +16601,84 @@ components: - content x-vectaraParents: - AgentInput + AgentSkillInput: + description: An input that invokes a skill by name. + type: object + properties: + type: + description: The type of input. + type: string + default: skill + example: skill + skill_name: + description: The name (key) of the skill to invoke. + type: string + example: code_review + required: + - type + - skill_name + x-vectaraParents: + - AgentInput AgentInput: description: An input that can be provided to an agent message. discriminator: propertyName: type mapping: text: '#/components/schemas/AgentTextInput' + skill: '#/components/schemas/AgentSkillInput' oneOf: - $ref: '#/components/schemas/AgentTextInput' + - $ref: '#/components/schemas/AgentSkillInput' InputMessageEvent: title: InputMessageEvent description: An input message event from a user. - type: object - properties: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_user_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: input_message - example: input_message - messages: - description: List of inputs that make up this message. - type: array - items: - $ref: '#/components/schemas/AgentInput' - example: - - type: text - content: I need help with my widget installation - 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 - - messages - - created_at + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: input_message + messages: + description: List of inputs that make up this message. + type: array + items: + $ref: '#/components/schemas/AgentInput' + example: + - type: text + content: I need help with my widget installation + required: + - type + - messages + x-vectaraParents: + - AgentEvent + - AgentStreamedResponse + SkillLoadEvent: + title: SkillLoadEvent + description: An event representing the loading of a skill's content into the + conversation. + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: skill_load + skill_name: + description: The name of the skill that was loaded. + type: string + example: code_review + content: + description: The skill content that was loaded. + type: string + example: You are a code reviewer. Review the code for bugs and security + issues. + required: + - type + - skill_name + - content x-vectaraParents: - AgentEvent - AgentStreamedResponse @@ -15037,226 +16766,150 @@ components: are, how they are stored, their lifecycle, and how agents interact with them. ' - type: object - properties: - id: - description: The unique identifier for the event. - type: string - pattern: ^aev_[0-9a-zA-Z_-]+$ - example: aev_artifact_upload_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: artifact_upload - example: artifact_upload - artifacts: - description: References to uploaded artifacts - type: array - items: - $ref: '#/components/schemas/ArtifactReference' - example: - - artifact_id: art_report_pdf_a3f2 - filename: report.pdf - mime_type: application/pdf - size_bytes: 2048576 - 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 - - artifacts - - created_at + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: artifact_upload + artifacts: + description: References to uploaded artifacts + type: array + items: + $ref: '#/components/schemas/ArtifactReference' + example: + - artifact_id: art_report_pdf_a3f2 + filename: report.pdf + mime_type: application/pdf + size_bytes: 2048576 + required: + - type + - artifacts x-vectaraParents: - AgentEvent - AgentStreamedResponse ToolInputEvent: title: ToolInputEvent description: An event representing input to a tool call. - type: object - properties: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_tool_input_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: tool_input - example: tool_input - tool_call_id: - description: The identifier for the tool call. - type: string - example: call_tool_search_001 - tool_configuration_name: - description: The name of the tool configuration being invoked, as defined - in the agent's tool_configurations map. - type: string - example: customer_search - tool_name: - description: Name of the tool being called. - type: string - example: web_search - tool_input: - description: Input data for the tool. - type: object - additionalProperties: true - example: - query: weather in San Francisco - 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 - - tool_call_id - - tool_configuration_name - - tool_name - - tool_input - - created_at + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: tool_input + tool_call_id: + description: The identifier for the tool call. + type: string + example: call_tool_search_001 + tool_configuration_name: + description: The name of the tool configuration being invoked, as defined + in the agent's tool_configurations map. + type: string + example: customer_search + tool_name: + description: Name of the tool being called. + type: string + example: web_search + tool_input: + description: Input data for the tool. + type: object + additionalProperties: true + example: + query: weather in San Francisco + required: + - type + - tool_call_id + - tool_configuration_name + - tool_name + - tool_input x-vectaraParents: - AgentEvent - AgentStreamedResponse ToolOutputEvent: title: ToolOutputEvent description: An event representing output from a tool call. - type: object - properties: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_tool_output_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: tool_output - example: tool_output - tool_call_id: - description: The unique identifier for the tool call, matching the input - event. - type: string - example: call_tool_search_001 - tool_configuration_name: - description: The name of the tool configuration that was invoked, as defined - in the agent's tool_configurations map. - type: string - example: customer_search - tool_name: - description: Name of the tool that was called. - type: string - example: web_search - tool_output: - description: Output data from the tool. - type: object - additionalProperties: true - example: - result: "Current weather is 70\xB0F and sunny" - 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 - - tool_call_id - - tool_configuration_name - - tool_name - - tool_output - - created_at - x-vectaraParents: - - AgentEvent - - AgentStreamedResponse - ThinkingEvent: - title: ThinkingEvent - description: An event representing chain-of-thought thinking by the agent. - type: object - properties: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_thinking_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: thinking - example: thinking - content: - description: Human-readable content of the reasoning process. - type: string - example: Analyzing user request and considering available options - 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 - - created_at + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: tool_output + tool_call_id: + description: The unique identifier for the tool call, matching the input + event. + type: string + example: call_tool_search_001 + tool_configuration_name: + description: The name of the tool configuration that was invoked, as defined + in the agent's tool_configurations map. + type: string + example: customer_search + tool_name: + description: Name of the tool that was called. + type: string + example: web_search + tool_output: + description: Output data from the tool. + type: object + additionalProperties: true + example: + result: "Current weather is 70\xB0F and sunny" + required: + - type + - tool_call_id + - tool_configuration_name + - tool_name + - tool_output + x-vectaraParents: + - AgentEvent + - AgentStreamedResponse + ThinkingEvent: + title: ThinkingEvent + description: An event representing chain-of-thought thinking by the agent. + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: thinking + content: + description: Human-readable content of the reasoning process. + type: string + example: Analyzing user request and considering available options + required: + - type x-vectaraParents: - AgentEvent - AgentStreamedResponse AgentOutputEvent: title: AgentOutputEvent description: An event representing a complete agent response. - type: object - properties: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_output_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: agent_output - example: agent_output - content: - description: The complete agent response content. - type: string - example: Hello! I can help you with your widget installation. Let me guide - you through the process. - 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 - - content - - created_at + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: agent_output + content: + description: The complete agent response content. + type: string + example: Hello! I can help you with your widget installation. Let me guide + you through the process. + required: + - type + - content x-vectaraParents: - AgentEvent - - AgentStreamedResponse StructuredOutputEvent: title: StructuredOutputEvent description: 'An event representing a complete agent response with structured @@ -15281,87 +16934,118 @@ components: 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 + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: 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 + required: + - type + - schema_name + - content x-vectaraParents: - AgentEvent - AgentStreamedResponse ContextLimitExceededEvent: title: ContextLimitExceededEvent - description: An event indicating the current request exceeded the LLM's context - limit. - type: object - properties: - id: - description: The unique identifier for the event - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - 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: context_limit_exceeded - context_limit: - description: The maximum number of tokens allowed by the model - type: integer - format: int64 - example: 128000 - actual_tokens: - description: The actual number of tokens in the request - type: integer - format: int64 - example: 140658 - message: - description: Human-readable error message - type: string - example: 'Context limit exceeded: 140658 tokens used, 128000 limit' - created_at: - description: Timestamp when the event was created - type: string - format: date-time - required: - - id - - session_key - - type - - message - - created_at + description: 'A transient event indicating the current request exceeded the + LLM''s context limit. + + This event is not persisted to the session history. + + ' + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: context_limit_exceeded + context_limit: + description: The maximum number of tokens allowed by the model + type: integer + format: int64 + example: 128000 + actual_tokens: + description: The actual number of tokens in the request + type: integer + format: int64 + example: 140658 + message: + description: Human-readable error message + type: string + example: 'Context limit exceeded: 140658 tokens used, 128000 limit' + required: + - type + - message + x-vectaraParents: + - AgentEvent + - AgentStreamedResponse + StepTransitionLimitExceededEvent: + title: StepTransitionLimitExceededEvent + description: 'A transient event indicating the agent exceeded the maximum number + of step transitions, + + which may indicate an infinite loop between steps. + + This event is not persisted to the session history. + + ' + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: step_transition_limit_exceeded + transition_limit: + description: The maximum number of step transitions allowed + type: integer + example: 10 + message: + description: Human-readable error message + type: string + example: Agent exceeded maximum step transitions (10). Possible infinite + loop between steps. + required: + - type + - message + x-vectaraParents: + - AgentEvent + - AgentStreamedResponse + SessionInterruptedEvent: + title: SessionInterruptedEvent + description: 'A transient event indicating the agent session was interrupted + by a user request. + + This event is not persisted to the session history. + + ' + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: session_interrupted + required: + - type x-vectaraParents: - AgentEvent - AgentStreamedResponse @@ -15369,57 +17053,107 @@ components: title: ImageReadEvent description: An event representing an image being loaded into the conversation context for viewing and analysis. - type: object - properties: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_image_read_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: image_read - example: image_read - artifact_id: - description: The ID of the image artifact being loaded into the agent's - conversation context. - 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 - 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 - - artifact_id - - created_at + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: image_read + artifact_id: + description: The ID of the image artifact being loaded into the agent's + conversation context. + 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 + required: + - type + - artifact_id + x-vectaraParents: + - AgentEvent + - AgentStreamedResponse + StepTransitionEvent: + title: StepTransitionEvent + description: An event representing a transition between agent steps. + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: step_transition + from_step: + description: The name of the step being transitioned from. + type: string + to_step: + description: The name of the step being transitioned to. + type: string + content: + description: The handoff message content for the LLM. + type: string + required: + - type + - from_step + - to_step + - content + x-vectaraParents: + - AgentEvent + - AgentStreamedResponse + CompactionEvent: + title: CompactionEvent + description: An event indicating that context compaction has completed. + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: compaction + example: compaction + turns_compacted: + description: Number of conversation turns that were compacted. + type: integer + example: 5 + events_compacted: + description: Number of events that were hidden by compaction. + type: integer + example: 47 + summary_text: + description: The plain text summary produced by compaction. + type: string + summary_key: + description: The key of the summary created by compaction. + type: string + example: sum_abc123 + required: + - type + - turns_compacted + - events_compacted + - summary_key x-vectaraParents: - AgentEvent - AgentStreamedResponse AgentEvent: description: An event in an agent session conversation. type: object + x-vectara-base-schema: '#/AgentEventBase' discriminator: propertyName: type mapping: input_message: '#/components/schemas/InputMessageEvent' + skill_load: '#/components/schemas/SkillLoadEvent' artifact_upload: '#/components/schemas/ArtifactUploadEvent' tool_input: '#/components/schemas/ToolInputEvent' tool_output: '#/components/schemas/ToolOutputEvent' @@ -15427,52 +17161,26 @@ components: agent_output: '#/components/schemas/AgentOutputEvent' structured_output: '#/components/schemas/StructuredOutputEvent' context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent' + step_transition_limit_exceeded: '#/components/schemas/StepTransitionLimitExceededEvent' + session_interrupted: '#/components/schemas/SessionInterruptedEvent' image_read: '#/components/schemas/ImageReadEvent' - guardrail_check: '#/components/schemas/GuardrailCheckEvent' + step_transition: '#/components/schemas/StepTransitionEvent' + compaction: '#/components/schemas/CompactionEvent' oneOf: - $ref: '#/components/schemas/InputMessageEvent' - - $ref: '#/components/schemas/ArtifactUploadEvent' - - $ref: '#/components/schemas/ToolInputEvent' - - $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: - id: - description: The unique identifier for the event. - type: string - pattern: aev_[0-9a-zA-Z_-]+$ - example: aev_user_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 - enum: - - input_message - - artifact_upload - - tool_input - - 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. - type: string - format: date-time - example: '2024-01-15T10:35:00Z' - required: - - id - - session_key - - type - - created_at + - $ref: '#/components/schemas/SkillLoadEvent' + - $ref: '#/components/schemas/ArtifactUploadEvent' + - $ref: '#/components/schemas/ToolInputEvent' + - $ref: '#/components/schemas/ToolOutputEvent' + - $ref: '#/components/schemas/ThinkingEvent' + - $ref: '#/components/schemas/AgentOutputEvent' + - $ref: '#/components/schemas/StructuredOutputEvent' + - $ref: '#/components/schemas/ContextLimitExceededEvent' + - $ref: '#/components/schemas/StepTransitionLimitExceededEvent' + - $ref: '#/components/schemas/SessionInterruptedEvent' + - $ref: '#/components/schemas/ImageReadEvent' + - $ref: '#/components/schemas/StepTransitionEvent' + - $ref: '#/components/schemas/CompactionEvent' ListAgentEventsResponse: description: Response containing a list of agent events. type: object @@ -15487,33 +17195,119 @@ components: required: - events - metadata - CreateInputEvent: - description: Request object for creating a new input event (user text input - only). + CreateInputRequestBase: + description: Base properties shared by all input request types. type: object properties: - type: - description: The type of event. - type: string - enum: - - input_message - default: input_message - example: input_message - messages: - description: List of inputs that make up this event. - type: array - items: - $ref: '#/components/schemas/AgentInput' - example: - - type: text - content: I need help with my widget installation stream_response: description: Indicates whether the response should be streamed or not. type: boolean default: false - required: - - type - - messages + InputBehavior: + description: "Controls how the input is processed when the session is already\ + \ running.\n- `steer`: Insert the message as soon as possible on the next\ + \ iteration of the agent loop.\n- `follow_up`: Insert the message after the\ + \ current agent loop finishes, as a follow-up turn.\n Follow-up inputs are\ + \ consumed one at a time: after each follow-up turn completes, the next\n\ + \ queued follow-up is processed. This ensures each follow-up gets a full\ + \ agent loop iteration.\n" + type: string + enum: + - steer + - follow_up + CreateInputMessageRequest: + description: A user input message with text or other content. + allOf: + - $ref: '#/components/schemas/CreateInputRequestBase' + - type: object + properties: + type: + type: string + default: input_message + messages: + description: List of inputs that make up this event. + type: array + items: + $ref: '#/components/schemas/AgentInput' + example: + - type: text + content: I need help with my widget installation + since: + description: 'Event ID to return all events created after queueing the + new input. When provided and the session is currently running, the response + will include all events created after this event ID, and the new input + will be processed according to the behavior field. Use the special value + "start" to receive all events from the beginning of the session, including + the input message itself. + + ' + type: string + pattern: ^(start|aev_[0-9a-zA-Z_-]+)$ + example: start + behavior: + $ref: '#/components/schemas/InputBehavior' + required: + - messages + x-vectaraParents: + - CreateInputRequest + CreateInterruptRequest: + description: Cancels the current agent operation. + allOf: + - $ref: '#/components/schemas/CreateInputRequestBase' + - type: object + properties: + type: + type: string + default: interrupt + required: + - type + x-vectaraParents: + - CreateInputRequest + CreateCompactRequest: + description: 'Requests compaction of the session history. Can be sent while + the session is processing + + (queued as a follow-up) or when idle. + + ' + allOf: + - $ref: '#/components/schemas/CreateInputRequestBase' + - type: object + properties: + type: + type: string + default: compact + compact_up_to_event_id: + description: "Compact all inputs up to this event ID (inclusive), e.g.\ + \ \"aev_abc123\".\nWhen specified, `keep_recent_inputs` is bypassed\ + \ \u2014 all inputs up to the anchor are compacted.\nIf omitted, compacts\ + \ all inputs except the most recent `keep_recent_inputs` inputs.\n" + type: string + example: aev_abc123 + compaction_message: + description: Override the compaction prompt for this compaction. + type: string + required: + - type + x-vectaraParents: + - CreateInputRequest + CreateInputRequest: + description: A request to create input for an agent session. + x-vectara-base-schema: '#/CreateInputRequestBase' + properties: + type: + type: string + default: input_message + discriminator: + propertyName: type + mapping: + input_message: '#/components/schemas/CreateInputMessageRequest' + interrupt: '#/components/schemas/CreateInterruptRequest' + compact: '#/components/schemas/CreateCompactRequest' + oneOf: + - $ref: '#/components/schemas/CreateInputMessageRequest' + - $ref: '#/components/schemas/CreateInterruptRequest' + - $ref: '#/components/schemas/CreateCompactRequest' AgentResponse: description: Response containing the complete list of events generated by an agent. @@ -15565,6 +17359,10 @@ components: type: string default: streaming_agent_output_end example: streaming_agent_output_end + event_id: + description: The ID of the persisted AgentOutputEvent. + type: string + example: aev_user_001 created_at: description: Timestamp when the event was created. type: string @@ -15620,6 +17418,46 @@ components: - created_at x-vectaraParents: - AgentStreamedResponse + ContextConsumedEvent: + title: ContextConsumedEvent + description: Token usage event reporting context window consumption. + type: object + properties: + type: + description: The event type. + type: string + default: context_consumed + example: context_consumed + session_context_usage: + description: Context used in session. + $ref: '#/components/schemas/SessionContextUsage' + created_at: + description: Timestamp when the event was created. + type: string + format: date-time + example: '2024-01-15T10:35:00Z' + required: + - type + - session_context_usage + - created_at + x-vectaraParents: + - AgentStreamedResponse + CompactionStartedEvent: + title: CompactionStartedEvent + description: An event indicating that context compaction has started. + allOf: + - $ref: '#/components/schemas/AgentEventBase' + - type: object + properties: + type: + description: The type of event. + type: string + default: compaction_started + example: compaction_started + required: + - type + x-vectaraParents: + - AgentStreamedResponse AgentStreamedResponse: description: An individual event sent with Server-sent Events (SSE) when the agent response is streamed. @@ -15627,6 +17465,7 @@ components: discriminator: propertyName: type mapping: + input_message: '#/components/schemas/InputMessageEvent' streaming_agent_output: '#/components/schemas/StreamingAgentOutput' streaming_agent_output_end: '#/components/schemas/StreamingAgentOutputEnd' streaming_thinking: '#/components/schemas/StreamingThinking' @@ -15635,10 +17474,17 @@ components: tool_output: '#/components/schemas/ToolOutputEvent' structured_output: '#/components/schemas/StructuredOutputEvent' context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent' + step_transition_limit_exceeded: '#/components/schemas/StepTransitionLimitExceededEvent' + session_interrupted: '#/components/schemas/SessionInterruptedEvent' image_read: '#/components/schemas/ImageReadEvent' + step_transition: '#/components/schemas/StepTransitionEvent' + context_consumed: '#/components/schemas/ContextConsumedEvent' + compaction_started: '#/components/schemas/CompactionStartedEvent' + compaction: '#/components/schemas/CompactionEvent' error: '#/components/schemas/StreamError' end: '#/components/schemas/StreamResponseEnd' oneOf: + - $ref: '#/components/schemas/InputMessageEvent' - $ref: '#/components/schemas/StreamingAgentOutput' - $ref: '#/components/schemas/StreamingAgentOutputEnd' - $ref: '#/components/schemas/StreamingThinking' @@ -15647,7 +17493,13 @@ components: - $ref: '#/components/schemas/ToolOutputEvent' - $ref: '#/components/schemas/StructuredOutputEvent' - $ref: '#/components/schemas/ContextLimitExceededEvent' + - $ref: '#/components/schemas/StepTransitionLimitExceededEvent' + - $ref: '#/components/schemas/SessionInterruptedEvent' - $ref: '#/components/schemas/ImageReadEvent' + - $ref: '#/components/schemas/StepTransitionEvent' + - $ref: '#/components/schemas/ContextConsumedEvent' + - $ref: '#/components/schemas/CompactionStartedEvent' + - $ref: '#/components/schemas/CompactionEvent' - $ref: '#/components/schemas/StreamError' - $ref: '#/components/schemas/StreamResponseEnd' SessionArtifact: @@ -15709,6 +17561,11 @@ components: type: string format: date-time example: '2024-01-15T10:35:00Z' + updated_at: + description: Timestamp when the artifact was last updated + type: string + format: date-time + example: '2024-01-15T10:35:00Z' data: description: Base64-encoded file content (only included in single artifact fetch, not in list responses) @@ -15723,6 +17580,7 @@ components: - checksum_sha256 - metadata - created_at + - updated_at ListSessionArtifactsResponse: title: ListSessionArtifactsResponse description: Response containing a paginated list of artifacts in a session @@ -15739,3 +17597,326 @@ components: required: - artifacts - metadata + AgentScheduleKey: + description: 'A unique key that identifies an agent schedule. Uses "key" terminology + (instead of "id") + + for consistency with other Vectara API resources (AgentKey, SessionKey, CorpusKey, + etc.). + + ' + type: string + pattern: '[0-9a-zA-Z_-]+$' + minLength: 1 + maxLength: 50 + example: daily-report + AgentScheduleName: + description: The human-readable name of an agent schedule. + type: string + minLength: 1 + maxLength: 255 + example: Daily Summary Report + IntervalScheduleConfiguration: + description: Configuration for interval-based schedule execution. + type: object + properties: + type: + description: The type of schedule. + type: string + enum: + - interval + example: interval + interval: + description: 'ISO-8601 duration string specifying the interval between executions. + + Minimum interval is 1 minute (PT1M). + + + Format: P[n]Y[n]M[n]DT[n]H[n]M[n]S + + - P: Period designator (required) + + - T: Time designator (separates date and time components) + + + Common examples: + + - PT1M: Every 1 minute + + - PT1H: Every 1 hour + + - PT6H: Every 6 hours + + - PT24H or P1D: Every 24 hours (daily) + + - P7D: Every 7 days (weekly) + + - P1M: Every 1 month + + + Reference: https://en.wikipedia.org/wiki/ISO_8601#Durations + + ' + type: string + pattern: ^P(?:\d+Y)?(?:\d+M)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+(?:\.\d+)?S)?)?$ + x-vectara-duration: + min_interval: PT1H + example: PT24H + required: + - type + - interval + CronScheduleConfiguration: + description: Configuration for cron-based schedule execution. + type: object + properties: + type: + description: The type of schedule. + type: string + enum: + - cron + example: cron + cron_expression: + description: "Cron expression specifying when the schedule should execute.\n\ + \nUses standard 5-field cron format:\n\u250C\u2500\u2500\u2500\u2500\u2500\ + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0-59)\n\u2502\ + \ \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\ + \u2500\u2500 hour (0-23)\n\u2502 \u2502 \u250C\u2500\u2500\u2500\u2500\ + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of month (1-31)\n\ + \u2502 \u2502 \u2502 \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\ + \u2500\u2500\u2500\u2500\u2500 month (1-12)\n\u2502 \u2502 \u2502 \u2502\ + \ \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\ + \u2500\u2500 day of week (0-6, Sunday=0)\n\u2502 \u2502 \u2502 \u2502\ + \ \u2502\n* * * * *\n\nSpecial characters:\n- * : Any value\n- , : List\ + \ (e.g., \"1,15\" for 1st and 15th)\n- - : Range (e.g., \"1-5\" for Monday-Friday)\n\ + - / : Step (e.g., \"*/15\" for every 15 units)\n\nCommon examples:\n-\ + \ \"0 9 * * *\": Every day at 9:00 AM\n- \"0 9 * * 1-5\": Weekdays at\ + \ 9:00 AM\n- \"*/15 * * * *\": Every 15 minutes\n- \"0 */6 * * *\": Every\ + \ 6 hours\n- \"0 0 1 * *\": First day of every month at midnight\n- \"\ + 0 0 * * 0\": Every Sunday at midnight\n\nTool for testing: https://crontab.guru/\n" + type: string + x-vectara-cron: + min_interval: PT1H + example: 0 9 * * * + required: + - type + - cron_expression + ScheduleConfiguration: + description: Configuration for when and how often the schedule should execute. + oneOf: + - $ref: '#/components/schemas/IntervalScheduleConfiguration' + - $ref: '#/components/schemas/CronScheduleConfiguration' + AgentSchedule: + description: An agent schedule that automates agent execution at specified intervals. + type: object + properties: + key: + $ref: '#/components/schemas/AgentScheduleKey' + agent_key: + $ref: '#/components/schemas/AgentKey' + name: + $ref: '#/components/schemas/AgentScheduleName' + description: + description: A detailed description of the schedule's purpose. + type: string + example: Generates a daily summary report of customer support activities + message: + description: The input message to send to the agent on each scheduled execution. + type: array + items: + $ref: '#/components/schemas/AgentInput' + example: + - type: text + content: Generate a summary of today's activities + schedule: + $ref: '#/components/schemas/ScheduleConfiguration' + enabled: + description: Whether the schedule is currently active and executing. + type: boolean + default: true + example: true + session_metadata: + description: Arbitrary metadata to include in each session created by this + schedule. + type: object + additionalProperties: true + default: {} + example: + report_type: daily + format: markdown + max_executions_to_keep: + description: Maximum number of past execution records to keep. Older records + are deleted automatically when a new execution is recorded. + type: integer + format: int32 + default: 10 + minimum: 1 + maximum: 50 + example: 10 + last_execution_at: + description: 'Timestamp of the most recent execution. Tracked by Temporal + and updated automatically + + after each execution. Null if the schedule has never executed. + + ' + type: string + format: date-time + nullable: true + example: '2024-01-15T10:30:00Z' + created_at: + description: 'Timestamp when the schedule was created. Note: This is a placeholder + value as Temporal + + does not store creation timestamps. Use for API compatibility only. + + ' + type: string + format: date-time + example: '1970-01-01T00:00:00Z' + required: + - key + - agent_key + - name + - message + - schedule + - enabled + - created_at + ListAgentSchedulesResponse: + description: Response containing a list of agent schedules with pagination metadata. + type: object + properties: + schedules: + description: Array of agent schedules. + type: array + items: + $ref: '#/components/schemas/AgentSchedule' + metadata: + $ref: '#/components/schemas/ListMetadata' + required: + - schedules + - metadata + CreateAgentScheduleRequest: + description: Request object for creating a new agent schedule. + type: object + properties: + key: + $ref: '#/components/schemas/AgentScheduleKey' + description: Optional unique key for the schedule. If not provided, will + be auto-generated. + name: + $ref: '#/components/schemas/AgentScheduleName' + description: + description: Optional detailed description of the schedule's purpose. + type: string + message: + description: The input message to send to the agent on each scheduled execution. + type: array + items: + $ref: '#/components/schemas/AgentInput' + schedule: + $ref: '#/components/schemas/ScheduleConfiguration' + enabled: + description: Whether the schedule should be active upon creation. + type: boolean + default: true + session_metadata: + description: Arbitrary metadata to include in each session created by this + schedule. + type: object + additionalProperties: true + default: {} + max_executions_to_keep: + description: Maximum number of past execution records to keep. Defaults + to 10. + type: integer + format: int32 + default: 10 + minimum: 1 + maximum: 50 + required: + - name + - message + - schedule + UpdateAgentScheduleRequest: + description: Request object for updating an existing agent schedule. All fields + are optional for PATCH semantics. + type: object + properties: + name: + $ref: '#/components/schemas/AgentScheduleName' + description: + description: Updated description of the schedule's purpose. + type: string + message: + description: Updated input message to send to the agent on each scheduled + execution. + type: array + items: + $ref: '#/components/schemas/AgentInput' + schedule: + $ref: '#/components/schemas/ScheduleConfiguration' + enabled: + description: Updated enabled status for the schedule. + type: boolean + session_metadata: + description: Updated metadata to include in each session created by this + schedule. + type: object + additionalProperties: true + max_executions_to_keep: + description: Updated maximum number of past execution records to keep. + type: integer + format: int32 + minimum: 1 + maximum: 50 + AgentScheduleExecution: + description: A single execution attempt of an agent schedule. + type: object + properties: + schedule_key: + $ref: '#/components/schemas/AgentScheduleKey' + workflow_run_id: + description: Temporal run ID grouping all retry attempts of the same trigger. + type: string + session_key: + description: Session created by this attempt. Null if the attempt failed + before session creation. + type: string + nullable: true + attempt: + description: 1-based attempt number within the workflow run. + type: integer + format: int32 + status: + description: Outcome of this attempt. + type: string + enum: + - success + - error + error_message: + description: Error message if the attempt failed. + type: string + nullable: true + executed_at: + description: Timestamp when this attempt ran. + type: string + format: date-time + required: + - schedule_key + - workflow_run_id + - attempt + - status + - executed_at + ListAgentScheduleExecutionsResponse: + description: Response containing a paginated list of schedule execution attempts. + type: object + properties: + executions: + type: array + items: + $ref: '#/components/schemas/AgentScheduleExecution' + metadata: + $ref: '#/components/schemas/ListMetadata' + required: + - executions + - metadata