Important: The functionality described on this page is only available to customers who have licensed Veeva AI.
Agent tools are a capability that provides your Large Language Model (LLM) additional information from your Vault to help it execute an agent action. When executed, agent tools operate as extensions of agent actions, allowing the action to interact with other areas of your Vault to provide relevant information to Veeva AI Chat users.
When assigning an agent tool to an agent action, you may include details on when and how to execute the tool in the agent action’s instructions. In addition, you can configure the agent action to always use an assigned agent tool, or let your LLM decide when to employ the agent action. The Description of the agent tool and Input parameters can also help your LLM to understand how to use the agent tool without explicit mention in the instructions.
Note: Ensure that the Description of the agent tool and Input parameters are clear and concise, as your LLM uses this information to understand the purpose of and how to execute the agent tool. If the Description is easy to understand, your LLM can invoke the agent tool without explicit direction in the agent action instructions.
VQL Query Agent Tool
The VQL Query agent tool allows an agent action to query Vault for specific data. For example, VernBio has created a custom Document Quality Check agent action that checks document spelling and grammar. Also, they would like the agent action to check if company terms and acronyms used in documents exist in VernBio’s glossary. To accomplish this behavior, they created an agent tool using the VQL Query Tool Type, which allows the agent action to query the VernBio Glossary object for accepted terms and phrases. Now, when a user clicks Document Quality Check, it will not only provide spelling and grammar checks, but also check if company terms used in the document are available in the glossary.
How to Configure a VQL Query Agent Tool
To configure a VQL Query agent tool:
- Navigate to Admin > Configuration > Tools.
- Click Create.
- Select VQL Query as the Tool Type.
- Enter a Label. The API Name field value is populated based on the Label value.
- Set the Status to Active or Inactive. By default, new agent tools are created in the Active status.
- Enter a Description.
- Under Input, click Add. This option is not available until you select the Tool Type.
- Enter a Property. This value represents the attribute your LLM uses to execute the Agent Tool. For example, if you enter
SELECT id, name__v FROM documents WHERE TONAME(type__v) = 'promotional_piece__c'in the Query field, you would enterpromotional_piece__cas the Property. - Select String, Integer, or Number from the Type drop-down.
- Enter a Description of the Input parameter.
- Click Add.
- Enter your VQL statement in the Query field.
- Click Save.
The VQL Query agent tool is now created and you can assign it to an agent action.
Best Practices
Use the following best practices when configuring agent tools:
- Reference Input parameters in the Query field using the
${parameter_name}format. Parameter names are case sensitive and must match the Property. For example, if you enterSELECT id, name__v FROM documents WHERE TONAME(type__v) = ${promotional_piece__c}in the Query field, you must enter${promotional_piece__c}as the Property. - Always include an
ORDER BYclause when using a query that returns multiple records to ensure the LLM receives the most relevant data first within the 1,000 record limit. - Your LLM uses the agent tool Description to interpret and execute the agent tool within agent actions. Ensure the Description is accurate and easy to understand to help the LLM when executing the agent tool.
- Use the
ASclause to provide meaningful Name values to fields and help the LLM accurately interpret the data. For example:status__v AS current_approval_status. - Use the developer portal to learn more about VQL syntax.
Limits
The following limits apply to configuring agent tools:
- The VQL Query agent tool does not support
LIMIT,PAGESIZE, orPAGEOFFSETVQL query clauses. - The VQL Query agent tool only supports object and document query targets.
- You can add up to ten Input parameters per agent tool.
- VQL Query agent tools can return a maximum of 1,000 records. If the query returns over 1,000 records, only the first 1,000 are sent to the LLM. Subquery limits are determined by your Vault’s
MAXROWSconfiguration. - The characters “ ‘ () and \ are escaped if used in Property values. The % and * characters are not escaped when used in
LIKEandFINDoperators. - The Property field does not support lists and enumerations.
- When using multiple arguments in a
CONTAINSoperator, you must provide multiple individual tokens. For example:WHERE CONTAINS(${PROD_1}, ${PROD_2}). - You must use search phrases in
FINDVQL clauses as tokens. For example:FIND( ${search_statement} )is valid whileFIND( ${prod_1} AND ${prod_2})is invalid.
JSON Response Agent Tool
The JSON Response agent tool allows you to generate JSON structured data based on input schema. You can execute a custom agent action using a JSON Response agent tool through either Vault Java SDK or Vault API to generate JSON formatted data. External programs, such as Java, can consume the data for processing purposes.
Important: When crafting a Description for the JSON Response, do not use language that suggests the agent tool outputs a JSON result. This language may cause errors when the agent action invokes the agent tool. Instead, the Description should mention the LLM provides the JSON response. For example, “Generate a JSON output based on the document” may return an error, while “Report the detected language, summary, and keywords for a given document based on its content” is a valid Description.
The JSON Response schema supports the following:
- Up to five levels of nesting
- 100 properties per JSON Response agent tool
- Required parameters
- Types:
- Object
- Array
- String
- Number
- Integer
- Date
- Enum data type
The following is an example of the JSON input schema you can use in the JSON Response:
{
"type": "object",
"properties": {
"document_id": {
"type": "string",
"description": "The document identifier, echoed from input."
},
"language": {
"type": "string",
"description": "Detected language of the document as an ISO 639-1 two-letter code (example: 'en', 'fr', 'de')."
},
"summary": {
"type": "string",
"description": "A concise summary of the document content, between two and five sentences."
},
"keywords": {
"type": "string",
"description": "Up to ten representative keywords extracted from the document and returned as a single comma-separated string (example: 'biology, syllabus, course, grading, schedule')."
}
},
"required": ["document_id", "language", "summary", "keywords"]
}
How to Configure a JSON Response Agent Tool
To configure a JSON Response agent tool:
- Navigate to Admin > Configuration > Tools.
- Click Create.
- Select JSON Response as the Tool Type.
- Enter a Label. The API Name field value is populated based on the Label value.
- Set the Status to Active or Inactive. By default, new agent tools are created in the Active status.
- Enter a Description.
- Under Input, enter the structured JSON input schema in the JSON Response field.
- Click Save.
The JSON Response agent tool is now created and you can assign it to an agent action.