IsTrace
is true
filter is applied. This displays only top-level traces. Removing this filter will show all runs, including intermediate spans, in the project.>
/ <
: Available for numeric fieldsIsTrace
is true
filter. For example, you would do this if you wanted to filter by run name
for sub runs or filter by run type
.
Run metadata and tags are also powerful to filter on. These rely on good tagging across all parts of your pipeline. To learn more, you can check out this guide.
Full-Text Search
filter which will match keywords in either field. For more targeted search, you can use the Input
or Output
filters which will only match content based on the respective field.
You can also specify multiple matches, either by including multiple terms separated by whitespace, or adding multiple filters - which will try to match all terms provided.
Note that keyword search is done by splitting the text and finding any partial matches on the search keywords, so it is not done in specific order. We exclude common stop words from the search (from the nltk stop word list along with a few other common JSON keywords).
python
and tensorflow
in either inputs or outputs, and embedding
in the inputs along with fine
and tune
in the outputs.
Input Key
or Output Key
filter from the filters dropdown.
For example, to match the following input:
Filters
, Add Filter
to bring up the filtering options. Then select Input Key
, enter input
as the key and enter What is the capital of France?
as the value.
Output Key
, enter documents.page_content
as the key and enter The capital of France is Paris
as the value. This will match the nested key documents.page_content
with the specified value.
Filter Shortcuts
on the right side to quickly filter based on common key-value pairs as shown below:
Output Key
filter.
While this example will show you how to filter for tool calls, the same logic can be applied to filter for any key-value pair in the output.
In this case, let’s assume this is the output you want to filter for:
Key | Value |
---|---|
generations.type | ChatGeneration |
generations.message.type | constructor |
generations.message.kwargs.type | ai |
generations.message.kwargs.id | run-ca7f7531-f4de-4790-9c3e-960be7f8b109 |
generations.message.kwargs.tool_calls.name | Plan |
generations.message.kwargs.tool_calls.args.steps | Research LangGraph's node configuration capabilities |
generations.message.kwargs.tool_calls.args.steps | Investigate how to add a Python code execution node |
generations.message.kwargs.tool_calls.args.steps | Find an example or create a sample implementation of a code execution node |
generations.message.kwargs.tool_calls.id | toolu_01XexPzAVknT3gRmUB5PK5BP |
generations.message.kwargs.tool_calls.type | tool_call |
type | LLMResult |
generations.message.kwargs.tool_calls.name
= Plan
This will match root and non-root runs where the tool_calls
name is Plan
.
Metadata
, Input Key
, and Output Key
fields to exclude specific runs from your results.
For example, to find all runs where the metadata key phone
is not equal to 1234567890
, set the Metadata
Key
operator to is
and Key
field to phone
, then set the Value
operator to is not
and the Value
field to 1234567890
. This will match all runs that have a metadata key phone
with any value except 1234567890
.
Key
operator to is not
. For example, setting the Key
operator to is not
with phone
as the key will match all runs that don’t have a phone
field in their metadata.
phone
nor any field with the value 1234567890
, set the Key
operator to is not
with key phone
, and the Value
operator to is not
with value 1234567890
.
phone
key but there is a value of 1234567890
for some other key, set the Key
operator to is not
with key phone
, and the Value
operator to is
with value 1234567890
.
does not contain
operator instead of is not
to perform a substring match.
and(eq(is_root, true), and(eq(feedback_key, "user_score"), eq(feedback_score, 1)))
. For more information on the query language syntax, please refer to this reference.
AI Query
functionality. With this, you can type in the filter you want to construct in natural language and it will convert it into a valid query.
For example: “All runs longer than 10 seconds”
Advanced Filters
link all the way at the bottom of the filter. This will open up a new modal where you can add Trace filters
. These filters will apply to the traces of all the parent runs of the individual runs you’ve already filtered for.
Foo
. This is useful when Foo
is not always called, but you want to analyze the cases where it is.
In order to do this, you can click on the Advanced Filters
link all the way at the bottom of the filter. This will open up a new modal where you can add Tree filters
. This will make the rule you specify apply to all child runs of the individual runs you’ve already filtered for.