-
-
+
+
To set up Sharepoint as a Knowledge source, first, open an Agent up and head to the Build screen. Then...
@@ -30,6 +29,6 @@ To set up Sharepoint as a Knowledge source, first, open an Agent up and head to
- Yes, our automatic content syncing feature ensures that any documents you upload initially, as well as any changes made to those files in SharePoint, are automatically updated in your agent's knowledge store. This means you won't have to worry about manually syncing files every time there's an update; it all happens seamlessly in the background.
+ Yes. Any documents you add initially, along with later changes made to those files in SharePoint, sync automatically to your Agent's Knowledge store. You don't need to manually re-sync files when something changes.
\ No newline at end of file
diff --git a/build/knowledge/knowledge-tool-steps.mdx b/build/knowledge/knowledge-tool-steps.mdx
index 89d37c21..41a8626d 100644
--- a/build/knowledge/knowledge-tool-steps.mdx
+++ b/build/knowledge/knowledge-tool-steps.mdx
@@ -1,8 +1,408 @@
---
title: 'Knowledge Tool steps'
-description: 'Use Tool steps to interact with your Knowledge tables'
+description: 'Use Tool steps to read from and write to your Knowledge tables inside a Tool'
---
-You can use Tool steps to interact with your Knowledge tables.
+Knowledge Tool steps let a Tool read from and write to your Knowledge tables. Use them to insert, upsert, update, delete, and retrieve rows, or to run semantic search over a Knowledge set. Pick a step from the tabs below for its fields and examples.
-
\ No newline at end of file
+## Writing Knowledge
+
+These steps add, change, or remove rows in your Knowledge table.
+
+
+
+
+ The Insert Knowledge step saves information by adding new rows to your Knowledge table — useful for capturing and storing data dynamically as a Tool or agent runs.
+
+ ### Inputs
+
+ - **New data to insert** — a JSON array of objects, where each object is a row. Add more objects to insert multiple rows at once (see the examples below).
+ - **Sync on upload** — whether the data is vectorized when added. In most cases keep this on, so your agents can semantically search and retrieve the rows.
+
+ ### Formatting examples
+
+
+
+```json
+[
+ {
+ "breed": "poodle",
+ "size": "small"
+ }
+]
+```
+
+
+```json
+[
+ {
+ "breed": "poodle",
+ "size": "small"
+ },
+ {
+ "breed": "great dane",
+ "size": "large"
+ }
+]
+```
+Separate each object with a comma when inserting multiple rows.
+
+
+
+
+ When you wrap the Insert Knowledge step in a Tool for an agent to call, set the Tool input for the new data to the **JSON** input type (not Text), since the step expects a JSON array of objects. Optionally provide a JSON Schema matching your table's structure, and reference the input in the **New data to insert** field using variable mode (`{{input_variable_name}}`).
+
+
+
+
+ The Upsert Knowledge step inserts new rows and updates existing ones in a single step, matching on an identifier field. Use it when you're syncing data that may or may not already exist — unlike Insert Knowledge, which always adds, and Update Knowledge, which only changes rows that already match.
+
+ ### Inputs
+
+ - **Identifier field** — the column used to match existing rows. A row whose identifier value already exists is updated; otherwise it's inserted as a new row.
+ - **Rows to upsert** — a JSON array of objects, where each object is a row. Each object should include the identifier field.
+ - **Sync on upload** — whether the data is vectorized on upsert. Keep this on so search stays accurate.
+
+ ### Formatting examples
+
+
+
+```json
+// With identifier field set to "breed":
+// "poodle" is updated if it exists, "corgi" is inserted if it doesn't
+[
+ {
+ "breed": "poodle",
+ "size": "medium"
+ },
+ {
+ "breed": "corgi",
+ "size": "small"
+ }
+]
+```
+
+
+
+
+
+ The Update Knowledge step changes existing rows in your Knowledge table, keeping your data current and accurate.
+
+ ### Inputs
+
+ - **Filter condition** — `and` requires all conditions to match before a row is updated; `or` matches when any condition does. Only applies when the filter has more than one object.
+ - **Filters** — a JSON array of objects describing which rows to match.
+ - **Update value** — an object of new values. Each key matches a column name, and its value replaces the current value in matching rows.
+ - **Sync on upload** — whether the updated data is re-vectorized. Keep this on so search stays accurate.
+
+ ### Formatting examples
+
+
+
+```json
+// Filters
+[
+ {
+ "breed": "poodle"
+ }
+]
+```
+```json
+// Update value
+[
+ {
+ "breed": "bulldog"
+ }
+]
+```
+
+
+```json
+// Filters
+[
+ {
+ "breed": "poodle",
+ "size": "small"
+ }
+]
+```
+```json
+// Update value
+[
+ {
+ "breed": "bulldog",
+ "size": "large"
+ }
+]
+```
+
+
+```json
+// Filters
+[
+ {
+ "breed": "poodle"
+ },
+ {
+ "breed": "bulldog"
+ }
+]
+```
+```json
+// Update value
+[
+ {
+ "breed": "cat"
+ }
+]
+```
+Separate each object with a comma when filtering multiple rows.
+
+
+
+
+
+ The Delete Knowledge step removes rows from your Knowledge table, so you can keep your data relevant and up to date.
+
+ ### Inputs
+
+ - **Filter condition** — `and` requires all conditions to match before a row is deleted; `or` matches when any condition does. Only applies when the filter has more than one object.
+ - **Filters** — a JSON array of objects describing which rows to delete.
+
+
+ Deletion is permanent. Every row matching the filter is removed, so test your filter with Get Knowledge first if you're unsure what it will match.
+
+
+ ### Formatting examples
+
+
+
+```json
+[
+ {
+ "breed": "poodle"
+ }
+]
+```
+
+
+```json
+[
+ {
+ "breed": "poodle",
+ "size": "small"
+ }
+]
+```
+
+
+```json
+// With filter condition set to "or"
+[
+ {
+ "breed": "poodle",
+ "size": "small"
+ },
+ {
+ "age": 4
+ }
+]
+```
+
+
+```json
+// With filter condition set to "and"
+[
+ {
+ "breed": "poodle",
+ "size": "small"
+ },
+ {
+ "age": 4
+ }
+]
+```
+
+
+
+
+
+
+## Searching and reading Knowledge
+
+These steps retrieve rows by filter or rank them by relevance to a query.
+
+
+
+
+ The Get Knowledge step retrieves rows directly from your Knowledge table using filters, without RAG. Use it when you know which rows you want rather than searching by meaning.
+
+ ### Inputs
+
+ - **Filter condition** — `and` requires all conditions to match before a row is returned; `or` matches when any condition does. Only applies when the filter has more than one object.
+ - **Filters** — a JSON array of objects describing which rows to retrieve.
+
+ ### Advanced
+
+ - **Fields to include** — the columns returned in the response. All fields are included by default. To target a specific field, prefix it with `data.` (for example, a `breed` field becomes `data.breed`).
+ - **Max records to return** — defaults to **20**.
+
+ ### Formatting examples
+
+
+
+```json
+[
+ {
+ "size": "large"
+ }
+]
+```
+
+
+```json
+[
+ {
+ "breed": "French Bulldog",
+ "size": "large"
+ }
+]
+```
+
+
+```json
+// With filter condition set to "or"
+[
+ {
+ "size": "large",
+ "breed": "French Bulldog"
+ },
+ {
+ "size": "small",
+ "breed": "poodle"
+ }
+]
+```
+
+
+
+
+
+ The Knowledge Search step searches a Knowledge table with RAG and returns the most relevant rows for a query.
+
+ ### Inputs
+
+ - **Query** — the text to search for.
+ - **Search type** — **Vector** finds results by meaning (semantic similarity), even when the exact words don't match; **Keyword** finds results by exact word match and is better for names and proper nouns.
+
+ ### Advanced
+
+ - **Output all fields** — when on, every field is returned including the similarity score; when off, only the content field is returned.
+ - **Max records to return** — the number of results to return (top k).
+ - **Similarity threshold** — the minimum score a result must reach to be returned. For vector search this is cosine similarity (0–1); for keyword search it's a BM25 score (0+). Raise it for fewer, more accurate results; lower it to be more inclusive.
+ - **Use exact search** — runs exact search (good for smaller Knowledge sets) when on, or faster approximate search when off.
+ - **Filters** — restrict the search to a subset of rows, defined as JSON objects.
+
+ With the `exact_match` filter type, pass an array to `condition_value` to match any value in it (OR semantics). A single value (`"condition_value": "x"`) matches rows where the field equals x; an array (`"condition_value": ["a", "b"]`) matches rows where the field equals a or b.
+
+```json
+{
+ "field": "call_id",
+ "filter_type": "exact_match",
+ "condition": "==",
+ "condition_value": ["45eb244f-5008-4b7f-bfab-6f4db2189d2e", "4a678557-700e-407f-ab62-23d0decf1b52"]
+}
+```
+
+ This filter returns results where `call_id` matches either value.
+
+
+
+ The Advanced Knowledge Search (2M context) step searches your Knowledge table with a prompt using CAG (Cache Augmented Generation), loading your entire Knowledge set into the model's long context window and generating an answer directly.
+
+ ### Inputs
+
+ - **Query** — the text to search for.
+ - **Knowledge source** — the set to search.
+ - **Gemini model** — the model used (currently two are available).
+
+ ### Advanced
+
+ - **System prompt** — the first message that instructs the model on its role, for example expert researcher, analyst, or tutor.
+ - **Temperature** — controls how creative or random the model's responses are. Lower is more focused; higher is more creative.
+ - **Enable grounding** — integrates Google Search results to inform and support the model's responses.
+ - **Max documents to search** — the number of documents retrieved from the Knowledge set.
+
+
+
+
+## Using variables in JSON
+
+When building Tools with the Insert, Upsert, Update, Get, and Delete steps, you can pass data from earlier steps or user input into your Knowledge operations. Reference a Tool input with `{{input_variable_name}}` or a previous step's output with `{{steps.step_name.output.variable_name}}`, and press the **{}** button beside any JSON input field to switch it to variable mode.
+
+Always wrap variables in quotes — `"{{variable_name}}"`. The final type is set by the column type in your Knowledge table and converted to match on insert: a value bound for a number column becomes a number even though it's quoted, a text column keeps it as text, and a boolean column stores it as a boolean. Make sure your column types match the data you're storing.
+
+For example:
+
+
+
+```json
+[
+ {
+ "breed": "{{user_breed_input}}",
+ "size": "{{user_size_input}}",
+ "age": "{{previous_step.output.age}}"
+ }
+]
+```
+
+
+```json
+[
+ {
+ "breed": "{{user_breed_input}}",
+ "size": "{{user_size_input}}",
+ "age": "{{user_age_input}}",
+ "weight": "{{previous_step.output.weight}}",
+ "is_active": "{{previous_step.output.is_active}}"
+ }
+]
+```
+
+
+
+
+ This quoting rule is specific to Knowledge Tool steps. In other Tool steps that accept JSON, `"{{variable}}"` is passed as a string while `{{variable}}` without quotes is passed as a number or boolean — the input box may flag a syntax error but still runs correctly.
+
+
+## Frequently asked questions (FAQs)
+
+
+
+ Upsert inserts new rows and updates existing ones in one step, matching on the identifier field. Use it when syncing data that may already exist. Use Insert when rows are always new, and Update when you only want to change rows that already match.
+
+
+ The data is stored but not vectorized, so your agents can't semantically search or reference it until you vectorize it. This applies to the Insert, Upsert, and Update steps.
+
+
+ Text, numbers, booleans, or any JSON-serializable value. Make sure each object in the array follows the correct formatting.
+
+
+ Set the value to empty quote marks `""`.
+
+
+ Use `and` when all filter conditions must be true for a row to match; use `or` when any one of them can match. It only applies when the filter array has more than one object, and affects the Update, Delete, and Get steps.
+
+
+ A JSON array of objects, where each object holds the field name and the value to filter by.
+
+
+ Nothing is deleted or returned. Make sure your filter values exactly match the data in the table, including casing and field names.
+
+
+ Get Knowledge retrieves rows by exact filter match, without RAG. Knowledge search ranks rows by semantic or keyword relevance to a query. Use Get Knowledge when you know the exact values to match, and Knowledge search when you want the most relevant results for a question.
+
+
+ Knowledge search runs RAG retrieval and returns the most relevant rows for a query, with control over search type, filters, and thresholds. Advanced Knowledge search (2m context) loads your entire Knowledge set into a long-context model and answers the query directly, which suits broad questions across the whole set. Start with Knowledge search for targeted retrieval.
+
+
diff --git a/build/knowledge/use-snippets-for-quick-access.mdx b/build/knowledge/use-snippets-for-quick-access.mdx
index 1e10a590..d69d27c6 100644
--- a/build/knowledge/use-snippets-for-quick-access.mdx
+++ b/build/knowledge/use-snippets-for-quick-access.mdx
@@ -1,121 +1,42 @@
---
-title: 'Use Snippets for Quick Access'
+title: 'Snippets'
sidebarTitle: 'Snippets'
-description: "Snippets transform how you manage shared text across your Relevance AI workspace."
+description: "Store reusable text once and reference it across your Tools and Agents."
---
-## Overview
+Snippets are named text variables you store once and reference anywhere a variable is accepted — Agent prompts, Tool inputs, and more. Update the Snippet in one place and every reference picks up the change, so shared text like a company name, support address, or standard disclaimer stays consistent.
- This powerful feature provides a centralized way to store and reference reusable text variables that can be used throughout your tools and agents. By creating a single source of truth for commonly used text elements, Snippets eliminate redundant updates and streamline your workflow.
+## Create a Snippet
-Whether you're managing company names, standard greetings, or complex message templates, Snippets make your text management more efficient and consistent across your entire AI ecosystem.
+1. Click **Snippets** in the left sidebar.
+2. Click **Create new Snippet**.
+3. Give it a descriptive name (for example `company_name` or `support_email`) and enter the text.
+4. Save.
-## Key Benefits
+## Reference a Snippet
-Snippets deliver several important advantages that enhance your workflow:
-
-- **Centralized Text Management** – Store common strings (company names, greetings, standard messages) in one accessible location.
-- **Universal Availability** – Use snippets anywhere a variable is accepted, including agents and tool inputs.
-- **Single-Source Updates** – Edit once and update everywhere, eliminating the need to manually change the same text across multiple tools.
-- **Simplified Architecture** – Eliminate 'prop-drilling' by making shared text easily accessible throughout your workspace.
-
-## How It Works
-
-Snippets integrate seamlessly into your existing workflow:
-
-1. **Define a Snippet**: Create a named text variable in the Snippets section.
-2. **Reference in Tools and Agents**: Use the `snippets.` prefix followed by your snippet name to reference it anywhere variables are accepted.
-3. **Update Centrally**: When you need to change the text, update it once in the Snippets section, and the change propagates everywhere it's used.
-
-For example, you can reference a snippet using this syntax: `{{ snippets.company_name }}`
-
-## Getting Started
-
-Accessing and using Snippets is straightforward:
-
-1. Navigate to the Snippets section in the left sidebar of your Relevance AI workspace
-2. Click "Create New Snippet"
-3. Provide a descriptive name and the text content for your snippet
-4. Save your snippet
-5. Reference your snippet in tools and agents using the `{{ snippets.your_snippet_name }}` syntax
-
-## Best Practices
-
-To get the most out of Snippets, consider these recommended practices:
-
-- **Use Descriptive Names**: Choose clear, intuitive names that indicate the snippet's purpose (e.g., `company_name`, `support_email`, `legal_disclaimer`).
-- **Categorize Related Snippets**: Use naming conventions to group related snippets (e.g., `email_header`, `email_signature`).
-- **Document Usage**: Add comments within your tools and agents to indicate where snippets are being used.
-- **Audit Regularly**: Periodically review your snippets to ensure they contain up-to-date information.
-- **Consider Scope**: Create snippets for text that appears in multiple places or might need updating across tools.
-
-## Use Cases
-
-Snippets are particularly valuable in these scenarios:
-
-- **Brand Consistency**: Maintain consistent company names, taglines, and messaging across all AI interactions.
-- **Contact Information**: Store email addresses, phone numbers, and URLs that might change over time.
-- **Standard Messages**: Create reusable templates for common responses, greetings, or disclaimers.
-- **Compliance Text**: Manage legal disclaimers, privacy statements, or terms of service that must be consistent.
-- **Personalization Elements**: Store reusable personalization templates that can be combined with dynamic data.
-
-## Implementation Examples
-
-### Example 1: Company Information
+Use the `snippets.` prefix with your Snippet name wherever variables are accepted:
```
-// Define snippets
-snippets.company_name = "Acme Corporation"
-snippets.support_email = "support@acmecorp.com"
-snippets.company_tagline = "Innovating for tomorrow, today."
-
-// Use in agent prompt
-"Thank you for contacting {{ snippets.company_name }}.
-Our mission is {{ snippets.company_tagline }}
-For additional support, please email {{ snippets.support_email }}."
-
+Thank you for contacting {{ snippets.company_name }}.
+For help, email {{ snippets.support_email }}.
```
-### Example 2: Email Templates
-
-```
-// Define snippets
-snippets.email_greeting = "Hello and thank you for reaching out,"
-snippets.email_signature = "Best regards,\\nThe Customer Success Team\\nAcme Corporation"
-
-// Use in email tool
-"{{ snippets.email_greeting }}
-
-[Personalized response goes here]
-
-{{ snippets.email_signature }}"
-
-```
-
-## Related Features
-
-[Agent Settings](https://relevanceai.com/docs/agent-settings) - Centralize your agent configurations for easier management, complementing snippets by providing a single source of truth for agent details.
-
-[Tool Version Control](https://relevanceai.com/docs/tool-version-control) - Save and track changes to your tools, working alongside snippets to create more maintainable and professional tool experiences.
+When you edit the snippet later, every place that references it updates automatically.
## Frequently asked questions (FAQs)
-**Q: Can snippets contain formatting like bold or italics?**
-
-A: Yes, snippets can contain Markdown formatting that will be rendered appropriately when used.
-
-**Q: Is there a size limit for snippets?**
-
-A: While there's no strict character limit, snippets are designed for reusable text elements rather than entire documents.
-
-**Q: Can I use variables within snippets?**
-
-A: Snippets are primarily for static text, but you can combine them with other variables in your tools and agents.
-
-**Q: How many snippets can I create?**
-
-A: There's no practical limit to the number of snippets you can create in your workspace.
-
-**Q: Can I organize snippets into folders or categories?**
-
-A: Currently, snippets are organized in a flat structure, but you can use naming conventions to create logical groupings.
\ No newline at end of file
+
+
+ Yes. Markdown in a Snippet renders when the Snippet is used.
+
+
+ There's no strict character limit, but Snippets are meant for reusable text elements rather than entire documents.
+
+
+ Snippets are for static text. You can combine a Snippet with other variables in your Tools and Agents.
+
+
+ Snippets are stored in a flat list. Use naming conventions (for example `email_header`, `email_signature`) to group related ones.
+
+
diff --git a/build/tools/tool-steps/knowledge/advanced-knowledge-search-2m.mdx b/build/tools/tool-steps/knowledge/advanced-knowledge-search-2m.mdx
deleted file mode 100644
index 83ccf11b..00000000
--- a/build/tools/tool-steps/knowledge/advanced-knowledge-search-2m.mdx
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: "Advanced Knowledge Search (2m context)"
-description: "The 'Advanced Knowledge Search (2m context)' Tool allows you to search your knowledge table with a prompt using CAG"
----
-
-## Add the 'Advanced Knowledge Search (2m)' Tool step to your Tool
-
-
-
-
-
-
-
-You can add the 'Advanced Knowledge Search (2m context) Tool' step to your Tool by:
-
-1. Creating a new Tool, then searching for the Advanced Knowledge Search (2m context) Tool step.
-2. Click "Expand" to see the full Tool step.
-3. Enter your search query in the **Query** field.
-4. Select the knowledge source you would like to use.
-5. Select your Gemini model *(currently there are only 2 models available)*
-
-
-## Advanced settings
-
-### System prompt
-The system prompt is the very first message in a conversation that instructs the model on its role or the personality of the AI. Examples can be expert researcher, analyst or tutor.
-
-### Temperature
-The temperature setting controls how “creative” or “random” the model’s responses will be. Lower temperatures make the model more focused and deterministic, while higher temperatures make it more creative and unpredictable.
-
-### Enable Grounding
-Grounding integrates Google Search results to inform and support the model’s responses.
-
-### Page size
-Page size controls the number of documents that will be retrieved from the knowledge set.
-
diff --git a/build/tools/tool-steps/knowledge/advanced-knowledge-search.mdx b/build/tools/tool-steps/knowledge/advanced-knowledge-search.mdx
deleted file mode 100644
index dacd8edc..00000000
--- a/build/tools/tool-steps/knowledge/advanced-knowledge-search.mdx
+++ /dev/null
@@ -1,121 +0,0 @@
----
-title: "Advanced Knowledge Search"
-description: "The 'Advanced Knowledge Search' Tool allows for searching knowledge tables with a higher degree of accuracy and precision using RAG"
----
-
-## Add the 'Advanced Knowledge Search' Tool step to your Tool
-
-
-
-
-
-
-You can add the' Advanced Knowledge Search' Tool step to your Tool by:
-
-1. Creating a new Tool, then searching for the Advanced Knowledge Search Tool step.
-2. Click "Expand" to see the full Tool step.
-3. Enter your search query in the **Query** field.
-4. Select the search type:
- - **Hybrid (recommended)**: Combines both semantic and keyword match for the most accurate and well-rounded results.
- - **Vector**: Finds results based on meaning (semantic similarity). Great when you want answers even if the exact words don’t match.
- - **Keyword**: Finds results based on exact word match. Useful when looking for specific terms or phrases.
-5. Select the Number of results to return.
-6. Select the Knowledge set to use.
-7. Select the fields to vectorize - choose which columns from your data should be used for retrieval. **By default, all fields are included.**
-8. Select your retrieval postprocessing option after generating your answer:
- - **None**: No extra processing. You’ll get the raw retrieved text as-is.
- - **Basic**: Applies light formatting or cleaning to make the results easier to read.
- - **Summary**: Automatically summarizes the retrieved content to make it shorter and more digestible.
- - **Markdown**: Formats the retrieved text in Markdown (e.g., with bold, headings, lists) to improve readability or prep it for markdown-compatible interfaces.
- - **Entity Extraction**: Pulls out key information from the retrieved content, e.g., names, places, dates, etc.
-
-
-
-## Advanced settings
-
-### Post processing options
-
-
-
- The system prompt is the very first message in a conversation that instructs the model on its role or the personality of the AI. Examples can be expert researcher, analyst or tutor.
-
-
-
- The temperature setting controls how “creative” or “random” the model’s responses will be. Lower temperatures make the model more focused and deterministic, while higher temperatures make it more creative and unpredictable.
-
-
-
- The model that will be used to generate the response. By default this model is `command-r-plus`.
-
-
-
-
These options are only available if your have selected a post processing option in step 8
-
-### Vectoring Config
-
-
- This is the model used to turn your text into a format the AI can understand and search through effectively. By default this model is `embed-english-v3.0`.
-
- For multilingual support, you can use `embed-multilingual-v3.0`
-
-
-
- Chunking size decides how much text is grouped together at once when the system processes your content. It’s measured in tokens, which are like small pieces of words.
- Common values are: `[128, 256, 512, 1024]`
-
-
- - Larger chunks means more context and easier to understand the bigger picture—great for complex content whilst
- - Smaller chunks means less context but more precise results—ideal for pinpointing specific information or short facts.
-
-
-
-
- - **Base:** This is the standard chunking method. It simply splits your text into fixed-sized chunks without adding any extra context. It’s fast and works well for straightforward content.
-
- Best for: Clean, well-structured documents where each section makes sense on its own.
-
-
- - **Window:** This strategy adds some overlap between chunks, meaning parts of the text are repeated across neighboring chunks. This helps preserve context between sections.
-
- Best for: Text where ideas span multiple paragraphs—helps avoid losing important connections.
-
-
- - **Contextual:** This method intelligently adjusts how chunks are created based on the structure and meaning of the content. It uses more advanced logic to split text at natural breaks (like headings or sentences).
-
- Best for: Complex or unstructured content where preserving meaning and flow is important.
-
-
-
-### Reranker Model
-Improves your search results by reordering them to show the most relevant information first. This is off by default but enabling it will boost performance in most cases.
-
-### Use Raw Files
-
-Select this if you want to run retrieval directly on the source file.
-
This only works on PDF and PPTX files
-
-### Update Vectors
-This option lets you force update the stored representations of your data (called embeddings) using your current settings—like a chunk size, embedding model, or chunking strategy.
-
- #### Use Vision
- If you have PDF files in your knowledge set, this option uses OCR (Optical Character Recognition) to re-extract the text from the raw PDF files. After OCR is applied, the system automatically triggers a vector update.
-
To enable Use Vision, Update Vectors must be set to true.
-
-### Generate Citations
-
-Turn this on to include direct references from your knowledge set during retrieval.
-
-
-
-## Frequently asked questions (FAQs)
-
-
-
- - [Knowledge Search](/build/tools/tool-steps/knowledge/knowledge-search) is easier to use out of the box, with sensible default options that work well for most use cases.
- - Advanced Knowledge Search gives you greater control and fine-tuning capabilities for more precise retrieval — but may be slower in comparison.
- - If you’re unsure which to choose, start with Knowledge Search.
-
- [Advanced Knowledge Search (2m context)](/build/tools/tool-steps/knowledge/advanced-knowledge-search-2m) allows you to search your entire knowledge set with just a prompt whilst Advanced Knowledge Search allows you to filter down your search results for a more focused retrieval.
- Start with Advanced Knowledge Search (2m) for most use cases. It works best when you want quick, high-quality answers across your entire knowledge base without much setup. Switch to Advanced Knowledge Search when you need more control, such as filtering by specific fields or fine-tuning what gets retrieved.
- Advanced knowledge search (2m) often produces richer, more complete answers, especially with large or unstructured content. However, Advanced Knowledge Search can give more precise results when you’re focused on a particular field, keyword, or structured dataset.
-
diff --git a/build/tools/tool-steps/knowledge/delete-knowledge.mdx b/build/tools/tool-steps/knowledge/delete-knowledge.mdx
deleted file mode 100644
index 8b44f750..00000000
--- a/build/tools/tool-steps/knowledge/delete-knowledge.mdx
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: "Delete Knowledge"
-description: "The 'Delete Knowledge' Tool step allows your agent to remove information from your knowledge table — making it easy to manage and keep your data relevant and up to date."
----
-
----
-
-## Add the 'Delete Knowledge' Tool step to your Tool
-
-
-
-
-
-
-You can add the 'Delete Knowledge' Tool step to your Tool by:
-
-1. Creating a new Tool, then clicking `+ Add Step`
-2. Searching for and adding the 'Delete Knowledge' Tool step
-3. Clicking ‘Expand’ to see the full Tool step
-4. Selecting the knowledge table you would like to access
-5. Filter condition: “and” vs “or” when matching data to delete:
- - Use `and` when all specified conditions must match for a row to be deleted.
- - Use `or` when any of the conditions can match.
-
-
- Filter condition only applies if you include more than one object in the filter
-
-6. Filters: Accepts a JSON selection of objects, where each object corresponds to a row. Add more objects as outlined in the formatting examples below to delete multiple rows at once.
-7. Click `Run step` to test out the Tool
-
-## Common errors
-
-
- This indicates that there is a formatting issue in the "Filters" input field. Make sure your object is formatted correctly. `Expected property name or '}' in JSON at...`
-
-
-
- This means the Filter being used is not a JSON. `Invalid JSON`
-
-
-## Formatting Examples
-
-### Example 1: Delete single condition
-
-```json
-// All poodles will be deleted
-[
- {
- "breed": "poodle"
- }
-]
-```
-
-### Example 2: Delete single condition
-
-```json
-// All small poodles will be deleted
-[
- {
- "breed": "poodle",
- "size": "small"
- }
-]
-```
-
-### Example 3: Delete multiple conditions (_or_)
-
-```json
-// All small poodles will be deleted AND any dog aged 4 will be deleted
-[
- {
- "breed": "poodle",
- "size": "small"
- },
- {
- "age": 4
- }
-]
-```
-
-### Example 3: Delete multiple conditions (_and_)
-
-```json
-// Only small poodles that are aged 4 will be deleted
-[
- {
- "breed": "poodle",
- "size": "small"
- },
- {
- "age": 4
- }
-]
-```
-
-
- Ensure to separate each object with a comma if inserting multiple rows.
-
-
-## Using Variables in JSON
-
-You can use variables from Tool inputs and other Tool steps in the **Filters** field. For detailed information on how to use variables in JSON for Knowledge Tool steps, including variable syntax and typing, see [Using Variables in JSON](/build/tools/tool-steps/knowledge/using-variables-in-json).
-
-For Knowledge Tool steps, all variables should be wrapped in quotes in the JSON format: `"{{variable_name}}"`. The filter values will be matched against your knowledge table data based on the column types.
-
-## Frequently asked questions (FAQs)
-
-
-
- - Use **AND** when _all_ filter conditions must be true for a row to be deleted.
- - Use **OR** when _any_ one of the conditions can match.
-
-
- This only applies when you include more than one object in the filter array.
-
-
-
- Yes. Any row that matches the filter condition you have specified will be deleted.
-
-
- If no rows match the provided conditions, no data will be deleted. Make sure your filter values exactly match the data in the knowledge set (e.g., casing, field names, etc.).
-
-
diff --git a/build/tools/tool-steps/knowledge/get-knowledge.mdx b/build/tools/tool-steps/knowledge/get-knowledge.mdx
deleted file mode 100644
index 76d7605c..00000000
--- a/build/tools/tool-steps/knowledge/get-knowledge.mdx
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: "Get Knowledge"
-description: "The Get Knowledge feature allows you to search and retrieve information directly from your knowledge table without RAG"
----
-
-## Add the ‘Get Knowledge’ Tool step to your Tool
-
-
-
-
-
-
-
-You can add the Get Knowledge’ Tool step to your Tool by:
-
-1. Creating a new Tool, then clicking `+ Add Step`
-2. Searching for and addingthe ‘Get Knowledge’ Tool step
-3. Clicking ‘Expand’ to see the full Tool step
-4. Selecting the Knowledge table you would like to access
-5. Filter condition: “and” vs “or” when matching data to update:
- - Use **and** when all specified conditions must match for a row to be deleted.
- - Use **or** when any of the conditions can match.
-
- Filter condition only applies if you include more than one object in the filter
-
-6. Filters: Accepts a JSON selection of objects, where each object corresponds to a row. Add more objects as outlined in the formatting examples below to delete multiple rows at once.
-7. Click `Run step` to test out the Tool
-
-## Advanced settings
-
-### Fields to include
-
-This is the fields (columns) that will be included in the response. By default, all fields are included.
-
-
When targeting a specific field, you will need to prefix each field with `data.`. For example, if you have a field name `breed`, you will instead use `data.breed`.
-
-### Number of records to retrieve
-
-This is the number of records to retrieve. By default, **20** records are retrieved.
-
-## Common errors
-
-
- This indicates that there is a formatting issue in the "New data to insert" input field. Make sure your object is formatted correctly. `Expected property name or '}' in JSON at...`
-
-
-
- This means the data being inserted into the knowledge table is not a JSON. `Invalid JSON`
-
-
-
-## Formatting Examples
-
-### Example 1: Retrieve all large dogs
-
-```json
-[
- {
- "size": "large"
- }
-]
-```
-
-### Example 2: Retrieve all large French Bulldogs
-
-```json
-[
- {
- "breed": "French Bulldog",
- "size": "large"
- },
-]
-```
-
-### Example 3: Retrieve all large dogs OR small poodles
-```json
-[
- {
- "size": "large",
- "breed": "French Bulldog"
- },
- {
- "size": "small",
- "breed": "poodle"
- }
-]
-```
-
-
-
- Ensure to separate each object with a comma if inserting multiple rows.
-
-
-## Using Variables in JSON
-
-You can use variables from Tool inputs and other Tool steps in the **Filters** field. For detailed information on how to use variables in JSON for Knowledge Tool steps, including variable syntax and typing, see [Using Variables in JSON](/build/tools/tool-steps/knowledge/using-variables-in-json).
-
-For Knowledge Tool steps, all variables should be wrapped in quotes in the JSON format: `"{{variable_name}}"`. The filter values will be matched against your knowledge table data based on the column types.
-
-## Frequently asked questions (FAQs)
-
-
-
- Get knowledge allows you to search and retrieve information directly from your knowledge table without RAG.
-
-
- The filter should be a JSON array of objects. Each object should have the field name and the value you want to filter by.
-
-
- - Use **AND** when _all_ filter conditions must be true for a row to be retrieved.
- - Use **OR** when _any_ one of the conditions can match.
-
-
- This only applies when you include more than one object in the filter array.
-
-
-
diff --git a/build/tools/tool-steps/knowledge/insert-knowledge.mdx b/build/tools/tool-steps/knowledge/insert-knowledge.mdx
deleted file mode 100644
index 3f5e5677..00000000
--- a/build/tools/tool-steps/knowledge/insert-knowledge.mdx
+++ /dev/null
@@ -1,95 +0,0 @@
----
-title: "Insert Knowledge"
-description: "The 'Insert Knowledge' Tool step lets your agent save information by adding new rows to your knowledge table—making it easy to capture and store data dynamically."
----
-
-## Add the 'Insert Knowledge' Tool step to your Tool
-
-
-
-
-
-
-
-You can add the 'Insert Knowledge' Tool step to your Tool by:
-
-1. Creating a new Tool, then clicking `+ Add Step`
-2. Searching for and adding the 'Insert Knowledge' Tool step
-3. Clicking 'Expand' to see the full Tool step
-4. Selecting the Knowledge table you would like to access
-5. New data to insert: Accepts a JSON selection of objects, where each object corresponds to a row. Add more objects as outlined in the formatting examples below to insert multiple rows at once.
-6. Use the **Sync on upload** field to determine whether the data should be vectorized when added to the knowledge set. In most cases, you'll want this enabled as it allows your agents to semantically search and retrieve relevant information from your knowledge table.
-7. Click `Run step` to test out the Tool
-
-## Common errors
-
-
- This indicates that there is a formatting issue in the "New data to insert" input field. Make sure your object is formatted correctly. `Expected property name or '}' in JSON at...`
-
-
-
- This means the data being inserted into the knowledge table is not a JSON. `Invalid JSON`
-
-
-
- When creating a Tool that wraps the Insert Knowledge Tool step for use with AI agents, ensure the Tool input for new data is configured as a **JSON input type** rather than a Text input. The Insert Knowledge Tool step expects a JSON array of objects (as shown in the formatting examples above), so the Tool input should match this format to properly pass data from agents to the step.
-
- When setting up the Tool input:
- - Use the **JSON** input type (not Text)
- - Optionally provide a JSON Schema that matches the structure of your knowledge table to guide agents on the expected format
- - Reference the Tool input variable in the Insert Knowledge Tool step's **New data to insert** field using variable mode (`{{input_variable_name}}`)
-
- This ensures that the data format passed from the Tool input to the Tool step remains consistent and properly structured.
-
-
-## Formatting Examples
-
-### Example 1: Insert single row
-
-```json
-[
- {
- "breed": "poodle",
- "size": "small"
- }
-]
-```
-
-### Example 2: Insert multiple rows
-
-```json
-[
- {
- "breed": "poodle",
- "size": "small"
- },
- {
- "breed": "great dane",
- "size": "large"
- }
-]
-```
-
-
- Ensure to separate each object with a comma if inserting multiple rows.
-
-
-## Using Variables in JSON
-
-You can use variables from Tool inputs and other Tool steps in the **New data to insert** field. For detailed information on how to use variables in JSON for Knowledge Tool steps, including variable syntax and typing, see [Using Variables in JSON](/build/tools/tool-steps/knowledge/using-variables-in-json).
-
-For Knowledge Tool steps, all variables should be wrapped in quotes in the JSON format: `"{{variable_name}}"`. The type of the inserted value is determined by the column type defined in your knowledge table.
-
-## Frequently asked questions (FAQs)
-
-
-
- If "Sync on Upload" is disabled, the data will be stored but not vectorized. This means your agents won't be able to semantically search or reference that data until you manually vectorize it.
-
-
- Yes. After inserting data, you can manage your knowledge set using the available tools this includes updating or deleting rows as needed.
-
-
- You can insert text, numbers, booleans, or any JSON-serializable value. Just make sure each object in the array follows the correct formatting.
-
-
diff --git a/build/tools/tool-steps/knowledge/knowledge-search.mdx b/build/tools/tool-steps/knowledge/knowledge-search.mdx
deleted file mode 100644
index 956be78e..00000000
--- a/build/tools/tool-steps/knowledge/knowledge-search.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: "Knowledge Search"
-description: "The 'Knowledge Search' Tool allows you to search knowledge tables with RAG"
----
-
-## Add the 'Knowledge Search' Tool step to your Tool
-
-
-
-
-
-
-You can add the 'Knowledge Search' Tool step to your Tool by:
-
-1. Creating a new Tool, then searching for the Knowledge Search Tool step.
-2. Click "Expand" to see the full Tool step.
-3. Select the Knowledge set to use.
-4. Enter your search query in the **Query** field.
-5. Select the search type:
- - **Vector**: Finds results based on meaning (semantic similarity). Great when you want answers even if the exact words don’t match.
- - **Keyword**: Finds results based on exact word match. Useful when looking for specific terms or phrases.
-
-## Advanced Settings
-
-### Vector field
-
-The vector field is the column used for searching your knowledge set using semantic similarity. By default, all fields are included unless you choose specific ones.
-
-### Output all fields
-
-- When enabled, all fields from your knowledge set will be shown - including the similarity score.
-- When disabled, only the main content field is returned.
-
-### Page size
-
-The number of results to return.
-
-### Similarity threshold
-
-All results are given a score between 0 and 1 based on how similar the result is to your query. This threshold is the minimum score for a result to be returned.
-
-
- Increase this value to get fewer but more accurate results. Lower it to be
- more inclusive.
-
-
-### Raw filters
-
-If you want to filter your search to a specific subset of entries in your knowledge set, you can use raw filters. Filters are defined as JSON objects.
-
-**OR Logic with Arrays:** When using `exact_match` filter type, you can pass an array to the `condition_value` field to create OR semantics. This allows you to match records where the field equals ANY value in the array.
-
-**Examples:**
-- Single value: `"condition_value": "x"` → matches records where field equals x
-- Array value: `"condition_value": ["a", "b"]` → matches records where field equals a OR b
-
-**Example filter with OR logic:**
-```json
-{
- "field": "call_id",
- "filter_type": "exact_match",
- "condition": "==",
- "condition_value": ["45eb244f-5008-4b7f-bfab-6f4db2189d2e", "4a678557-700e-407f-ab62-23d0decf1b52"]
-}
-```
-
-This filter will return results where `call_id` matches either of the two provided values.
-
-## Frequently asked questions (FAQs)
-
-
-
- - Knowledge Search is easier to use out of the box, with sensible default
- options that work well for most use cases. - [Advanced Knowledge
- Search](/build/tools/tool-steps/knowledge/advanced-knowledge-search) gives you
- greater control and fine-tuning capabilities for more precise retrieval —
- but may be slower in comparison.
-
-
- - If you’re unsure which to choose, start with Knowledge Search. - Knowledge
- search works better out of the box, whilst advanced knowledge search gives
- you more control and fine-tuning options.
-
-
diff --git a/build/tools/tool-steps/knowledge/update-knowledge.mdx b/build/tools/tool-steps/knowledge/update-knowledge.mdx
deleted file mode 100644
index 34439287..00000000
--- a/build/tools/tool-steps/knowledge/update-knowledge.mdx
+++ /dev/null
@@ -1,133 +0,0 @@
----
-title: "Update Knowledge"
-description: "The 'Update Knowledge' Tool step lets you update existing rows in your knowledge table—making it easy to keep your data current and accurate."
----
-
-## Add the 'Update Knowledge' Tool step to your Tool
-
-
-
-
-
-
-
-
-You can add the 'Update Knowledge' Tool step to your Tool by:
-
-1. Creating a new Tool, then clicking `+ Add Step`
-2. Searching for and adding the 'Update Knowledge' Tool step
-3. Clicking 'Expand' to see the full Tool step
-4. Selecting the knowledge table you would like to access
-5. Filter condition: "and" vs "or" when matching data to update:
- - Use `and` when all specified conditions must match for a row to be updated.
- - Use `or` when any of the conditions can match.
-
- Filter condition only applies if you include more than one object in the filter
-
-6. Filters: Accepts a JSON selection of objects, where each object corresponds to a row. Add more objects as outlined in the formatting examples below to match multiple rows at once.
-7. Update value: Provide an object with the new values to update. Each key should match a column name in your knowledge table, and its corresponding value will replace the current value in the matching row.
-8. Use the **Sync on upload** field to determine whether the data should be vectorized when added to the knowledge set. In most cases, you'll want this enabled as it allows your agents to semantically search and retrieve relevant information from your knowledge table.
-9. Click `Run step` to test out the Tool
-
-
-## Common errors
-
-
- This indicates that there is a formatting issue in the "New data to insert" input field. Make sure your object is formatted correctly. `Expected property name or '}' in JSON at...`
-
-
-
- This means the data being inserted into the knowledge table is not a JSON. `Invalid JSON`
-
-
-## Formatting Examples
-
-### Example 1: Replace all poodles with bulldogs
-
-```json
-// Filters
-[
- {
- "breed": "poodle"
- }
-]
-```
-
-```json
-// Update value
-[
- {
- "breed": "bulldog"
- }
-]
-```
-
-### Example 2: Replace all small poodles with large bulldogs
-
-```json
-// Filters
-[
- {
- "breed": "poodle",
- "size": "small"
- }
-]
-```
-
-```json
-// Update value
-[
- {
- "breed": "bulldog",
- "size": "large"
- }
-]
-```
-
-
-### Example 3: Replace all poodles *and* bulldogs with cats
-
-```json
-// Filters
-[
- {
- "breed": "poodle"
- },
- {
- "breed": "bulldog"
- }
-]
-```
-
-```json
-// Update value
-[
- {
- "breed": "cat"
- }
-]
-```
-
-
- Ensure to separate each object with a comma if filtering multiple rows.
-
-
-## Using Variables in JSON
-
-You can use variables from Tool inputs and other Tool steps in the **Filters** and **Update value** fields. For detailed information on how to use variables in JSON for Knowledge Tool steps, including variable syntax and typing, see [Using Variables in JSON](/build/tools/tool-steps/knowledge/using-variables-in-json).
-
-For Knowledge Tool steps, all variables should be wrapped in quotes in the JSON format: `"{{variable_name}}"`. The type of the updated value is determined by the column type defined in your knowledge table, and values will be automatically converted to match the column type during the update.
-
-## Frequently asked questions (FAQs)
-
-
-
- If "Sync on Upload" is disabled, the data will be stored but not vectorized. This means your agents won't be able to semantically search or reference that data until you manually vectorize it.
-
-
- You can update a field to be empty/blank by setting the value to empty quote marks `""`.
-
-
- You can use text, numbers, booleans, or any JSON-serializable value. Just make sure each object in the array follows the correct formatting.
-
-
diff --git a/build/tools/tool-steps/knowledge/using-variables-in-json.mdx b/build/tools/tool-steps/knowledge/using-variables-in-json.mdx
deleted file mode 100644
index 8827d9ba..00000000
--- a/build/tools/tool-steps/knowledge/using-variables-in-json.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: "Using Variables in JSON"
-description: "Learn how to use variables from Tool inputs and other Tool steps in JSON fields for Knowledge Tool steps"
----
-
-When building Tools with Knowledge Tool steps (Insert, Update, Get, Delete Knowledge), you can reference inputs from Tool inputs or outputs from other Tool steps using variable syntax `{{variable_name}}`. This allows you to dynamically insert data from previous steps or user inputs into your knowledge operations.
-
-## Variable Syntax
-
-You can reference:
-- **Tool inputs**: `{{input_variable_name}}`
-- **Previous Tool step outputs**: `{{steps.step_name.output.variable_name}}`
-
-Press the **{}** button next to any JSON input field to switch to variable mode and reference these values.
-
-## Variable Typing for Knowledge Tool Steps
-
-For Knowledge Tool steps (Insert, Update, Get, Delete), **all variables should be wrapped in quotes** in the JSON format: `"{{variable_name}}"`.
-
-The type of the inserted value is determined by the column type defined in your knowledge table. The system will automatically convert the value to match the column type during insertion.
-
-Make sure the column types in your knowledge table match the data types you want to store:
-- **Number columns**: Values will be converted to numbers on insert, even though they're quoted in the JSON
-- **Text/String columns**: Values will be stored as text
-- **Boolean columns**: Values will be stored as booleans
-
-## Examples
-
-### Example: Using Variables in Filters
-
-```json
-[
- {
- "breed": "{{user_breed_input}}",
- "size": "{{user_size_input}}",
- "age": "{{previous_step.output.age}}"
- }
-]
-```
-
-### Example: Using Variables in Data Objects
-
-```json
-[
- {
- "breed": "{{user_breed_input}}",
- "size": "{{user_size_input}}",
- "age": "{{user_age_input}}",
- "weight": "{{previous_step.output.weight}}",
- "is_active": "{{previous_step.output.is_active}}"
- }
-]
-```
-
-In these examples, all variables are wrapped in quotes as required for Knowledge Tool steps. The final type depends on your knowledge table column types:
-- If the `breed` and `size` columns are text columns, the values will be inserted as strings
-- If the `age` and `weight` columns are number columns, the values will be converted to numbers on insert, even though they're quoted in the JSON
-- The `is_active` column type determines whether the value is stored as a boolean
-
-## Variable Typing for Other Tool Steps
-
-**Note**: When passing values to other Tool steps that accept JSON input (not Knowledge Tool steps), the typing works differently:
-- `"{{variable}}"` will be passed as a string
-- `{{variable}}` (without quotes) will be passed as a number or boolean. The JSON input box may show a syntax error, but it will still run correctly.
-
-## See Also
-
-- [Insert Knowledge](/build/tools/tool-steps/knowledge/insert-knowledge)
-- [Update Knowledge](/build/tools/tool-steps/knowledge/update-knowledge)
-- [Get Knowledge](/build/tools/tool-steps/knowledge/get-knowledge)
-- [Delete Knowledge](/build/tools/tool-steps/knowledge/delete-knowledge)
-
diff --git a/docs.json b/docs.json
index 4a3c495b..e58a1ac8 100644
--- a/docs.json
+++ b/docs.json
@@ -214,18 +214,6 @@
"build/tools/tool-steps/llms/llm-tool-step"
]
},
- {
- "group": "Knowledge Tool Steps",
- "pages": [
- "build/tools/tool-steps/knowledge/insert-knowledge",
- "build/tools/tool-steps/knowledge/delete-knowledge",
- "build/tools/tool-steps/knowledge/update-knowledge",
- "build/tools/tool-steps/knowledge/advanced-knowledge-search-2m",
- "build/tools/tool-steps/knowledge/knowledge-search",
- "build/tools/tool-steps/knowledge/get-knowledge",
- "build/tools/tool-steps/knowledge/using-variables-in-json"
- ]
- },
{
"group": "Confluence Tool Steps",
"pages": [
@@ -374,17 +362,22 @@
"pages": [
"build/knowledge/create-knowledge",
{
- "group": "Integrated Knowledge Sources",
+ "group": "Build with Knowledge",
"pages": [
- "build/knowledge/integrated-knowledge-sources/google-drive",
- "build/knowledge/integrated-knowledge-sources/sharepoint",
- "build/knowledge/integrated-knowledge-sources/notion"
+ "build/knowledge/knowledge-tool-steps",
+ "build/knowledge/enrich-with-tool",
+ {
+ "group": "Knowledge Sources",
+ "pages": [
+ "build/knowledge/integrated-knowledge-sources/google-drive",
+ "build/knowledge/integrated-knowledge-sources/sharepoint",
+ "build/knowledge/integrated-knowledge-sources/notion",
+ "build/knowledge/integrated-knowledge-sources/confluence"
+ ]
+ }
]
},
- "build/knowledge/find-and-use-knowledge",
- "build/knowledge/enrich-with-tool",
- "build/knowledge/inactive-table-deletion",
- "build/knowledge/knowledge-tool-steps",
+ "build/knowledge/delete-knowledge",
"build/knowledge/use-snippets-for-quick-access"
]
}
@@ -779,6 +772,38 @@
}
},
"redirects": [
+ {
+ "source": "/build/tools/tool-steps/knowledge/insert-knowledge",
+ "destination": "/build/knowledge/knowledge-tool-steps#insert-knowledge"
+ },
+ {
+ "source": "/build/tools/tool-steps/knowledge/update-knowledge",
+ "destination": "/build/knowledge/knowledge-tool-steps#update-knowledge"
+ },
+ {
+ "source": "/build/tools/tool-steps/knowledge/delete-knowledge",
+ "destination": "/build/knowledge/knowledge-tool-steps#delete-knowledge"
+ },
+ {
+ "source": "/build/tools/tool-steps/knowledge/get-knowledge",
+ "destination": "/build/knowledge/knowledge-tool-steps#get-knowledge"
+ },
+ {
+ "source": "/build/tools/tool-steps/knowledge/knowledge-search",
+ "destination": "/build/knowledge/knowledge-tool-steps#knowledge-search"
+ },
+ {
+ "source": "/build/tools/tool-steps/knowledge/advanced-knowledge-search",
+ "destination": "/build/knowledge/knowledge-tool-steps#advanced-knowledge-search-2m-context"
+ },
+ {
+ "source": "/build/tools/tool-steps/knowledge/advanced-knowledge-search-2m",
+ "destination": "/build/knowledge/knowledge-tool-steps#advanced-knowledge-search-2m-context"
+ },
+ {
+ "source": "/build/tools/tool-steps/knowledge/using-variables-in-json",
+ "destination": "/build/knowledge/knowledge-tool-steps#using-variables-in-json"
+ },
{
"source": "/enterprise/org-project-controls-governance",
"destination": "/enterprise/manage-projects-and-users-api"
@@ -835,6 +860,22 @@
"source": "/templates/bulk-run",
"destination": "/build/knowledge/enrich-with-tool"
},
+ {
+ "source": "/build/knowledge/find-and-use-knowledge",
+ "destination": "/get-started/core-concepts/knowledge"
+ },
+ {
+ "source": "/build/knowledge/access-knowledge",
+ "destination": "/get-started/core-concepts/knowledge"
+ },
+ {
+ "source": "/build/knowledge/advanced-knowledge-retrieval",
+ "destination": "/get-started/core-concepts/knowledge"
+ },
+ {
+ "source": "/get-started/key-concepts/knowledge",
+ "destination": "/get-started/core-concepts/knowledge"
+ },
{
"source": "/templates/faq",
"destination": "/get-started/core-concepts/tools"
@@ -925,7 +966,7 @@
},
{
"source": "/tool/tool-steps/knowledge-search",
- "destination": "/build/tools/tool-steps/knowledge/knowledge-search"
+ "destination": "/build/knowledge/knowledge-tool-steps#knowledge-search"
},
{
"source": "/templates/sentiment-analysis",
diff --git a/example-use-cases/few-shot-prompting.mdx b/example-use-cases/few-shot-prompting.mdx
index 96cf5969..9c2224cb 100644
--- a/example-use-cases/few-shot-prompting.mdx
+++ b/example-use-cases/few-shot-prompting.mdx
@@ -58,11 +58,13 @@ By using a database of responses and replies that have been proven to be effecti
[Upload](/build/knowledge/create-knowledge) a CSV file containing samples of received messages and your corresponding replies.
Make sure to [enable knowledge](/build/knowledge/create-knowledge).
-See our short guide on [best practice to prepare my CSV data](/build/knowledge/).
+{/* Hidden/retired page (not in docs.json, no inbound links). Edited only to keep the CI link-check green: /build/knowledge/ is a 404, repointed to a live page. */}
+See our short guide on [best practice to prepare my CSV data](/build/knowledge/create-knowledge).
### 4. Search in knowledge
+{/* Hidden/retired page. Edited only to keep the CI link-check green: this PR deletes /build/tools/tool-steps/knowledge/knowledge-search (link-rot ignores docs.json redirects), so point at the live consolidated page. */}
We want to create our own few-shot prompting technique based on an entire dataset. This can be achieved by using a search step to find the most similar
-past response(s) to the current input. So, we need to add a [Knowledge search](/build/tools/tool-steps/knowledge/knowledge-search) component to our Tool and
+past response(s) to the current input. So, we need to add a [Knowledge search](/build/knowledge/knowledge-tool-steps#knowledge-search) component to our Tool and
configure the step:

diff --git a/get-started/core-concepts/knowledge.mdx b/get-started/core-concepts/knowledge.mdx
index fbfae5dc..ab5131c4 100644
--- a/get-started/core-concepts/knowledge.mdx
+++ b/get-started/core-concepts/knowledge.mdx
@@ -23,7 +23,7 @@ Think of it as your agent's reference library. When an agent needs to answer a q
Update your knowledge bases as things change. Your agents automatically use the latest information.
- Pull in data from files, websites, Google Drive, SharePoint, Notion, and more.
+ Pull in data from files, websites, Google Drive, SharePoint, Notion, Confluence, and more.
@@ -45,6 +45,10 @@ When you add a knowledge base to an agent, you choose how the agent uses it:
- **Add all to prompt** — the entire knowledge set is included in the prompt every time the agent runs. Best for small or simple datasets.
- **Allow agent to search** — the agent searches the knowledge base using RAG and pulls only what's relevant. Best for large or complex datasets.
+### Using Knowledge in Tools
+
+You can also read from and write to Knowledge directly inside a Tool using [Knowledge Tool steps](/build/knowledge/knowledge-tool-steps) — including [Knowledge search](/build/knowledge/knowledge-tool-steps#knowledge-search) for everyday retrieval and [Advanced knowledge search (2M context)](/build/knowledge/knowledge-tool-steps#advanced-knowledge-search-2m-context) when you want to query your whole knowledge set with a prompt.
+
## Where is Knowledge most useful?
Knowledge is most effective when your agents need access to specific, proprietary, or frequently changing information:
@@ -67,7 +71,7 @@ Knowledge is most effective when your agents need access to specific, proprietar
- You can upload CSV, PDF, Excel, JSON, and audio files. You can also pull content from websites or sync from integrations like Google Drive, SharePoint, and Notion.
+ You can upload CSV, PDF, Excel, JSON, and audio files. You can also pull content from websites or sync from integrations like Google Drive, SharePoint, Notion, and Confluence.
diff --git a/get-started/key-concepts/knowledge.mdx b/get-started/key-concepts/knowledge.mdx
deleted file mode 100644
index 0ad4fc9b..00000000
--- a/get-started/key-concepts/knowledge.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: 'Knowledge'
-sidebarTitle: 'Knowledge'
-description: 'Give your agents context'
----
-
-## What is Knowledge?
-
-Knowledge is our RAG solution in Relevance AI, which allows you to provide additional context and relevant information to your agents and tools.
-
-## How do I create Knowledge?
-
-Creating knowledge in Relevance AI is simple and flexible. You can:
-
-- **Manually input data** - Start with an empty table and enter information directly.
-- **Upload structured and unstructured data** - Import files such as CSV, PDF, Excel, JSON, or even audio files.
-- **Extract content from a website** - Fetch text and relevant information from URLs.
-- **Connect third-party integrations** - Sync data from external platforms.
-
-
-## Links
-On the sidebar, you have access to
-* [Tools](/get-started/key-concepts/tools): build integrations, LLM prompt chains or other step by step automations
-* [Agents](/get-started/key-concepts/agent): reasoning bots powered by LLMs that plan and complete tasks
-* [API keys](/get-started/core-concepts/api-integration): enter your own API key(s) for the many supported vendors
\ No newline at end of file
diff --git a/style.css b/style.css
index 91a171c5..ff874f73 100644
--- a/style.css
+++ b/style.css
@@ -301,9 +301,9 @@ div#content-side-layout {
/* Path-picker wrapper — frames the Tabs as one controlled unit */
.path-picker {
border: none;
- border-radius: 1rem;
- padding: 1.5rem;
- margin: 1.5rem 0 2rem;
+ border-radius: 0.875rem;
+ padding: 1rem;
+ margin: 1rem 0 1.5rem;
background:
linear-gradient(135deg, rgba(79, 70, 229, 0.05), rgba(99, 102, 241, 0.02) 45%, rgba(165, 180, 252, 0.04));
box-shadow:
@@ -323,17 +323,24 @@ div#content-side-layout {
0 2px 4px rgba(0, 0, 0, 0.2);
}
-/* In-page Tabs — pill-style buttons, centered, distinct active state */
+/* In-page Tabs — pill-style buttons, distinct active state.
+ "safe center" keeps a short tab row centered but falls back to left-aligned
+ when the row overflows, so the first/last tabs aren't clipped out of reach. */
.path-picker [data-component-part="tabs-list"] {
- justify-content: center;
+ justify-content: safe center;
gap: 0.5rem;
border-bottom: none !important;
- padding: 0.5rem 0 1rem;
+ /* vertical padding only — gives the active button's glow room to fade inside the
+ scroll box. No horizontal padding, so the first/last tabs sit flush to the scroll
+ edges and stay symmetric when scrolled (the panel's own frame supplies the margin). */
+ padding: 0.75rem 0 1rem;
+ overflow-x: auto;
}
.path-picker [data-component-part="tab-button"] {
- padding: 0.5rem 1.25rem !important;
- border-radius: 0.625rem !important;
+ padding: 0.375rem 0.875rem !important;
+ border-radius: 0.5rem !important;
+ white-space: nowrap;
border-bottom: none !important;
margin-bottom: 0 !important;
background-color: rgba(255, 255, 255, 0.7);
@@ -354,7 +361,7 @@ div#content-side-layout {
color: #ffffff !important;
box-shadow:
0 1px 0 rgba(255, 255, 255, 0.2) inset,
- 0 4px 12px rgba(79, 70, 229, 0.35);
+ 0 2px 8px rgba(79, 70, 229, 0.28);
}
.dark .path-picker [data-component-part="tab-button"] {
@@ -374,5 +381,11 @@ div#content-side-layout {
color: #ffffff !important;
box-shadow:
0 1px 0 rgba(255, 255, 255, 0.15) inset,
- 0 4px 16px rgba(99, 102, 241, 0.5);
+ 0 2px 10px rgba(99, 102, 241, 0.4);
+}
+
+/* Active tab icon: Mintlify paints it with the primary color (purple), which
+ disappears against our purple active pill. Force it white to match the label. */
+.path-picker [data-component-part="tab-button"][data-active="true"] .tab-icon {
+ background-color: #ffffff !important;
}