Skip to main content
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.

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

[
  {
    "breed": "poodle",
    "size": "small"
  }
]
[
  {
    "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}}).

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 conditionand 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

[
  {
    "size": "large"
  }
]
[
  {
    "breed": "French Bulldog",
    "size": "large"
  }
]
// With filter condition set to "or"
[
  {
    "size": "large",
    "breed": "French Bulldog"
  },
  {
    "size": "small",
    "breed": "poodle"
  }
]

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:
[
  {
    "breed": "{{user_breed_input}}",
    "size": "{{user_size_input}}",
    "age": "{{previous_step.output.age}}"
  }
]
[
  {
    "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.
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.