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.

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:

  1. Navigate to Admin > Configuration > Tools.
  2. Click Create.
  3. Select VQL Query as the Tool Type.
  4. Enter a Label. The API Name field value is populated based on the Label value.
  5. Set the Status to Active or Inactive. By default, new agent tools are created in the Active status.
  6. Enter a Description.
  7. Under Input, click Add. This option is not available until you select the Tool Type.
  8. 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 enter promotional_piece__c as the Property.
  9. Select String, Integer, or Number from the Type drop-down.
  10. Enter a Description of the Input parameter.
  11. Click Add.
  12. Enter your VQL statement in the Query field.
  13. 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 enter SELECT 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 BY clause 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 AS clause 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, or PAGEOFFSET VQL 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 MAXROWS configuration.
  • The characters “ ‘ () and \ are escaped if used in Property values. The % and * characters are not escaped when used in LIKE and FIND operators.
  • The Property field does not support lists and enumerations.
  • When using multiple arguments in a CONTAINS operator, you must provide multiple individual tokens. For example: WHERE CONTAINS(${PROD_1}, ${PROD_2}).
  • You must use search phrases in FIND VQL clauses as tokens. For example: FIND( ${search_statement} ) is valid while FIND( ${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.

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:

  1. Navigate to Admin > Configuration > Tools.
  2. Click Create.
  3. Select JSON Response as the Tool Type.
  4. Enter a Label. The API Name field value is populated based on the Label value.
  5. Set the Status to Active or Inactive. By default, new agent tools are created in the Active status.
  6. Enter a Description.
  7. Under Input, enter the structured JSON input schema in the JSON Response field.
  8. Click Save.

The JSON Response agent tool is now created and you can assign it to an agent action.