Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEEPSET_API_KEYYesYour deepset API key.
DEEPSET_WORKSPACEYesYour deepset workspace name.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
deploy_pipelineA

Deploys a pipeline to production.

This function attempts to deploy the specified pipeline in the given workspace. If the deployment fails due to validation errors, it returns a validation result. :param pipeline_name: Name of the pipeline to deploy. :param version_id: Optional ID of the pipeline version to deploy. If None, deploys the latest non-draft version.

:returns: Deployment validation result or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

create_pipelineB

Creates a new pipeline within the currently configured deepset workspace. :param pipeline_name: Name of the pipeline to create. :param yaml_configuration: YAML configuration for the pipeline. :returns: Created pipeline or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
create_pipeline(data={'key': 'value'}, threshold=10)

# Call with references
create_pipeline(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
create_pipeline(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_component_definitionB

Returns the definition of a specific Haystack component. :param component_type: Fully qualified component type (e.g. haystack.components.routers.conditional_router.ConditionalRouter) :param haystack_version: Optional version of Haystack to use. Pass the same version as specified in the pipeline yaml's dependencies section for the haystack-ai package.

:returns: ComponentDefinition model or error message string

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_cost_over_timeA

Reads the LLM cost of the workspace, or of one pipeline, per UTC day.

Use this to see how spending developed, find the day a cost spike started, or compare periods. Costs are in USD. There is one point per day with usage; days without usage are left out, so a missing day means zero cost. A cost_total of null means that day had usage but none of it was priced. Without dates the range is the last 30 days. start_date is inclusive and end_date exclusive. The daily figures leave out unpriced LLM calls; use get_cost_totals to check whether the cost is complete.

Without workspace the figures cover the whole organization, as the Cost Management page does for an organization admin; this needs the organization admin role. Use workspace for one workspace. In that organization view pipeline_name and Service names can't be used (they belong to a workspace); pass Service ids instead.

Narrow the figures with services, providers and api_keys. They combine: usage must match every kind you set, and any one value within a list. :param pipeline_name: Restrict to this pipeline. Omit for the whole workspace. Needs Pipelines read as well as Costs read. :param start_date: Inclusive start as an ISO timestamp. Defaults to 30 days before end_date. :param end_date: Exclusive end as an ISO timestamp. Defaults to no upper bound. :param services: Restrict to these Services (deployment in the API; a published Service endpoint, not a deployed pipeline, which is a pipeline). Each value is a Service name or its id, the key from get_cost_breakdown with group_by='deployment'. Looking a Service up by name needs Services read as well as Costs read; an id needs only Costs read. :param providers: Restrict to these providers. Use the provider ids from get_cost_breakdown with group_by='provider', such as bedrock_converse or openai, not their display names. :param api_keys: Restrict to these API keys. Use the key ids from get_cost_breakdown with group_by='api_key', never a key's secret token. :returns: The daily cost, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_pipeline_trace_span_tagsA

Retrieves all tags for a single span within a Haystack pipeline run trace.

A span's tags carry the component-level detail, including its input and output (e.g. haystack.component.input / haystack.component.output) plus type and error information. Use this to inspect one component run in detail.

Obtain span_id from a span in a get_pipeline_trace response, and query_id from list_pipeline_traces or list_pipeline_search_history. :param pipeline_name: Name of the pipeline. :param query_id: UUID of the search history query. :param span_id: UUID of the span whose tags to retrieve. :returns: The span's tag dictionary or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_evaluatorA

Fetches one Evaluator, or one of its versions with the Python source.

Without version_id it returns the Evaluator with every version, newest first, each with the Metrics it declares but no source. With version_id it returns that version including its python_code; pass latest_version.evaluator_version_id to read the current source. :param evaluator_id: The Evaluator's id. :param version_id: A version's id, to read that version's source. :returns: The Evaluator or the version, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

update_deploymentB

Updates a deployment's metadata, sizing, or execution mode.

Only fields you provide are changed; omitted fields keep their current value. :param deployment_id: ID of the deployment to update. :param name: New name for the deployment. :param description: New description. :param group_label: New group label. :param deployment_mode: New execution mode, "MANAGED" or "SERVERLESS". :param service_level: New sizing tier, "PRODUCTION", "DEVELOPMENT", or "CUSTOM". :param idle_timeout_in_seconds: New idle timeout, in seconds. :param min_query_replica_count: New minimum number of query replicas. :param max_query_replica_count: New maximum number of query replicas. :param max_index_replica_count: New maximum number of index replicas. :param cpu_request: New requested CPU per replica. :param cpu_limit: New CPU limit per replica. :param memory_request: New requested memory per replica. :param memory_limit: New memory limit per replica. :param gpu_limit_gigabyte: New GPU memory limit in gigabytes. :returns: The updated deployment or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
update_deployment(data={'key': 'value'}, threshold=10)

# Call with references
update_deployment(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
update_deployment(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_datasetA

Fetches one Dataset with all its test cases, in the order an Experiment replays them.

Each test case has its test_case_id (for update_test_case, copy_test_cases and remove_test_cases), the session_id it replays or the inputs it sends, its expected data and its setup and cleanup source. :param dataset_id: The Dataset's id. :returns: The Dataset, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

create_deployment_revisionA

Pushes a new revision onto a deployment, e.g. from a platform pipeline version.

Creating a revision does not serve it automatically; call activate_deployment_revision to make it the deployment's served revision. :param deployment_id: ID of the deployment. :param comment: Comment describing the revision. :param config_yaml: Inline pipeline configuration YAML, for an externally pushed revision. :param source_version_id: ID of the source pipeline version, for a platform pipeline revision. :param source_type: Where the revision's pipeline configuration comes from, "PLATFORM_PIPELINE" (default) or "EXTERNAL_PIPELINE". :returns: The newly created revision or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
create_deployment_revision(data={'key': 'value'}, threshold=10)

# Call with references
create_deployment_revision(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
create_deployment_revision(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_slice_from_object_storeA

Extract a slice from a string or list object that is stored in the object store.

:param object_id: Identifier of the object. :param start: Start index for slicing. :param end: End index for slicing (optional - leave empty to get slice from start to end of sequence). :param path: Navigation path to object to slice (optional). :return: String representation of the slice.

activate_deployment_revisionB

Activates a revision, marking it as the deployment's desired served revision. :param deployment_id: ID of the deployment. :param revision_id: ID of the revision to activate. :returns: The updated deployment or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_cost_totalsA

Reads the total LLM cost, tokens and requests of the workspace, or of one pipeline, over a date range.

Use this to answer how much a workspace or pipeline spent on LLM calls. Costs are in USD. Without dates the range is the last 30 days. start_date is inclusive and end_date exclusive, so for September 2026 pass 2026-09-01T00:00:00Z and 2026-10-01T00:00:00Z.

Without workspace the figures cover the whole organization, as the Cost Management page does for an organization admin; this needs the organization admin role. Use workspace for one workspace. In that organization view pipeline_name and Service names can't be used (they belong to a workspace); pass Service ids instead.

Narrow the figures with services, providers and api_keys. They combine: usage must match every kind you set, and any one value within a list.

Check is_cost_complete before reporting total_cost. When it is false, total_cost is a lower bound, not the final figure: say so, and name the models in unpriced_models (LLM calls with no price on file) and mention pending_generation_count (calls whose cost is still being calculated, which usually clears within a minute). total_requests counts queries, not individual LLM calls; one query can make several LLM calls. :param pipeline_name: Restrict to this pipeline. Omit for the whole workspace. Needs Pipelines read as well as Costs read. :param start_date: Inclusive start as an ISO timestamp. Defaults to 30 days before end_date. :param end_date: Exclusive end as an ISO timestamp. Defaults to no upper bound. :param services: Restrict to these Services (deployment in the API; a published Service endpoint, not a deployed pipeline, which is a pipeline). Each value is a Service name or its id, the key from get_cost_breakdown with group_by='deployment'. Looking a Service up by name needs Services read as well as Costs read; an id needs only Costs read. :param providers: Restrict to these providers. Use the provider ids from get_cost_breakdown with group_by='provider', such as bedrock_converse or openai, not their display names. :param api_keys: Restrict to these API keys. Use the key ids from get_cost_breakdown with group_by='api_key', never a key's secret token. :returns: The cost totals, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

debug_pipelineA

Runs a pipeline configuration in debug mode: pin a breakpoint, resume a snapshot, or trace a full run.

Debugs a pipeline configuration directly (not a saved pipeline by name) -- pass the YAML you want to test, e.g. from get_pipeline_version, create_pipeline_version, or a local draft. The inline run trace is always returned, so a failure is visible even for a run that never reaches a breakpoint.

One call carries at most one of:

  • break_at_component_name (with break_at_visit_count) -- run from inputs until the breakpoint is hit, then stop and return a resumable snapshot in the 'snapshot' field. Pass that back as resume_from to continue the run.

  • resume_from -- replay a snapshot returned by a previous debug run to completion; inputs are ignored, they come from the snapshot.

  • neither -- run the pipeline from inputs to completion as a plain debug run. :param yaml_configuration: The pipeline YAML configuration to debug. :param inputs: Named pipeline inputs keyed by the input name declared under the pipeline config's 'inputs' mapping (e.g. {"query": "What is love?"}). Ignored when resume_from is set. :param break_at_component_name: Name of the component to break at. Mutually exclusive with resume_from; omit both to run to completion as a plain debug run. :param break_at_visit_count: Break when the target has been visited this many times (0 breaks before the first visit; relevant for loops/cycles). Only used if break_at_component_name is set. :param resume_from: A snapshot returned by a previous debug run (its 'snapshot' field), replayed to completion. Mutually exclusive with break_at_component_name. :param files: File IDs to download and inject into the inputs declared under the pipeline config's 'inputs.files' mapping. :param pipeline_id: Optional ID of the pipeline this debug run is associated with. :param pipeline_version_id: Optional ID of the pipeline version to associate the run with (requires pipeline_id). :param dry_run: Best-effort stateless run: state-modifying components (e.g. DocumentWriter) are replaced with no-op equivalents so the pipeline can be inspected without side effects. Required for indexing pipelines (their document store carries no index until deploy time); harmless for query pipelines. Set it on resume too if the original run used dry_run, otherwise the run is rejected.

:returns: PipelineDebugResult with status, result/snapshot, and the run trace, or an error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
debug_pipeline(data={'key': 'value'}, threshold=10)

# Call with references
debug_pipeline(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
debug_pipeline(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

start_experiment_runA

Scores a pipeline's Sessions with a Metric Group, outside any Experiment. Costs money.

Every Evaluator of the Metric Group judges every chosen Session, so the run has Sessions times Evaluators cells, and an Evaluator that judges with a model is billed per judged turn on the customer's provider. Name the Sessions in session_ids (find them with list_sessions), or give a window of time: window_from and window_to together, optionally narrowed by origin, deployment_id, pipeline_version_id and revision_id, judge every Session whose last activity falls in it. The server resolves the window to its Sessions when the run starts. Give session_ids or a window, never both. A window run is always SAMPLED and cannot take focus; it is refused when it has more Sessions or cells than the ceiling.

Preview first: preview=True with a window starts nothing and returns sessions, evaluators and cells (the judge calls it would make) against the ceiling. Show that to the user and get a yes before starting for real. There is no preview for named Sessions: their cells are the number of Sessions times the Metric Group's Evaluators.

The run is queued, not finished: poll it with get_experiment_run (counts, then the grid), and find earlier runs with list_experiment_runs. reuse REUSE_SUCCEEDED judges only what this Metric Group has not already judged successfully, which makes re-running after a partial failure cheap; RERUN_ALL judges everything again. selection HAND_PICKED marks Sessions chosen because they looked wrong, which keeps the run out of trends and exports; use it for named Sessions that are not a sample of the traffic. A focus makes it HAND_PICKED. :param pipeline_name: Name of the pipeline whose Sessions are judged. :param metric_group_id: The Metric Group to judge with (see list_metric_groups). :param session_ids: The Sessions to judge: search_session_id values, or a single-turn run's query_id. :param window_from: Window start, ISO 8601 with a timezone: last activity at or after it. :param window_to: Window end, ISO 8601 with a timezone, not in the future: last activity at or before it. :param origin: Window filter: only Sessions from SERVICE, PIPELINE_RUN or PLAYGROUND. :param deployment_id: Window filter: only Sessions this Service served. :param pipeline_version_id: Window filter: only Sessions this pipeline version served. :param revision_id: Window filter: only Sessions this Service revision served. :param reuse: RERUN_ALL (default) or REUSE_SUCCEEDED. :param selection: SAMPLED (default) or HAND_PICKED. :param focus: Per Session id, the turns to judge by query_id; a Session left out is judged on every turn. :param preview: True counts what the window would judge and starts nothing. :returns: The queued run (pipeline_experiment_run_id, cells), or with preview the counts, or an error.

list_pipeline_versionsA

Lists all versions of a pipeline, ordered by version number descending (newest first). :param pipeline_name: Name of the pipeline to list versions for. :param after: Cursor (version_id UUID) to fetch the next page of results. :returns: Paginated list of pipeline versions or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

update_datasetA

Renames a Dataset. Change its test cases with the test case tools. :param dataset_id: The Dataset's id. :param name: The new name. :returns: The Dataset, or an error message.

list_pipeline_tracesA

Lists Haystack pipeline run trace summaries for a specific pipeline.

Returns one lightweight summary per query run — query_id, query text, status, timing (duration_s, created_at), and failure details if the run failed. Summaries do not include spans or logs. Use this to browse runs, find slow or failed queries, then pass a query_id to get_pipeline_trace for the full execution trace (spans with essential tags such as component type), get_pipeline_trace_span_tags for a single span with full tags (including input/output), or get_pipeline_trace_logs for the logs of the trace.

Use the after parameter with next_cursor from the response to fetch the next page. :param pipeline_name: Name of the pipeline to retrieve traces for. :param limit: Maximum number of trace entries to return per page (default 10). :param after: ISO-8601 timestamp cursor from next_cursor on the previous response. :param query_filter: An OData filter expression to narrow down results. Supported fields: query, client_source_path, pipeline_version_id, answer, api_key, created_at, created_by, tags/tag_id, feedbacks, feedbacks/score, feedbacks/comment, feedbacks/bookmarked, session_id, search_session_id, feedbacks/result_id, request/filters, request/params, duration, labels, status, note. Example: "status eq 'failed'" or "created_at ge 2024-01-01T00:00:00Z". :param sort_field: Field to sort results by. One of: created_at, query, duration, feedbacks/score. Defaults to created_at. :param sort_order: Sort direction — ASC (oldest first) or DESC (newest first). Defaults to DESC. :returns: Paginated list of pipeline trace summaries or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_deployment_statsB

Fetches query volume, outcome split, and run durations for a deployment. :param deployment_id: ID of the deployment. :param days: Size of the rolling window, in days (1-90, default 30). :param granularity: Bucket width for the returned series, "DAY" (default) or "HOUR". :param time_zone: IANA time zone used to bucket the series (default "UTC"). :returns: Deployment statistics or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_experiment_runsA

Lists scoring runs: a Metric Group's on one pipeline, or every one that judged a given Session.

A scoring run is a Metric Group judging chosen Sessions of one pipeline, outside any Experiment (see start_experiment_run); the runs an Experiment makes are listed too. Give metric_group_id for that group's runs, or session_id for the runs, of any Metric Group, that judged that Session; each run names its Metric Group in pipeline_experiment_id. Newest first, without their grids: status says whether the fan-out finished, not whether every cell succeeded, window is what a window run judged and resolved_sessions how many Sessions it had. Read one run's grid with get_experiment_run. :param pipeline_name: Name of the pipeline. :param metric_group_id: List this Metric Group's runs. Give this or session_id. :param session_id: List the runs that judged this Session. Give this or metric_group_id. :param limit: Most runs to return (at most 200). The API has no further paging: a result of exactly this many may be cut off. :returns: The runs, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_deployment_revisionB

Fetches a single deployment revision, including the pipeline configuration YAML it serves. :param deployment_id: ID of the deployment. :param revision_id: ID of the revision to fetch. :returns: The revision, including its config YAML, or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

create_workspaceA

Creates a new workspace with the specified name.

This tool creates a new workspace that can be used to organize pipelines, indexes, and other resources. The workspace name must be unique across the platform. Once created, you can start deploying pipelines and other resources within this workspace. :param name: The name for the new workspace. Must be unique. :returns: Success confirmation or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

update_test_caseA

Changes one test case of a Dataset. Fields you leave out are kept.

inputs replaces the inputs and works only on a test case created with inputs, not on a Session-based one. expected replaces the expected data. :param dataset_id: The Dataset's id. :param test_case_id: The test case's id. :param name: The new name. :param inputs: The new pipeline inputs, as {name: value}. :param expected: The new expected data. :param setup_source: New Python source that runs before every replay. :param cleanup_source: New Python source that runs after every replay. :param clear: Fields to remove from the test case. :returns: The test case, or an error message.

rerun_failed_experimentA

Retries what failed in an Experiment. Costs money: judges or replays again.

rerun="evaluations" judges again the evaluations a side's scoring run left failed or errored (see scoring_counts in get_experiment), reusing every one that succeeded; it bills only those Evaluators again. rerun="replays" replays again the replays that failed (run_counts.failed), reusing every Session that exists, then scores that side again, which bills the new Sessions' replays and evaluations. hub-api refuses with a message when nothing failed or while a side is still running. Follow progress with get_experiment. :param experiment_id: The Experiment's id. :param rerun: Which failures to retry: "evaluations" (default) or "replays". :returns: The Experiment, or an error message.

patch_pipeline_versionA

Updates fields of an existing pipeline version in place.

At least one of yaml_configuration, description, or is_draft must be provided. :param pipeline_name: Name of the pipeline. :param version_id: UUID of the version to update. :param yaml_configuration: New YAML configuration for the version (optional). :param description: New description for the version (optional). :param is_draft: New draft status for the version (optional). :returns: The updated pipeline version or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
patch_pipeline_version(data={'key': 'value'}, threshold=10)

# Call with references
patch_pipeline_version(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
patch_pipeline_version(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

add_deployment_tagB

Adds a tag to a deployment. Each deployment supports at most three tags. :param deployment_id: ID of the deployment. :param tag_name: Tag to add (1-50 characters; letters, digits, spaces, underscores, hyphens). :returns: The deployment's full tag list after the add, or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_experiment_resultsA

Reads an Experiment's results: each Metric, candidate against baseline, then each test case.

Find an Experiment with list_experiments. metrics has one entry per Metric of the Metric Group, in its order: each side's value (or labels for a Label), delta and delta_pct of the candidate over the baseline, better (which way a change is an improvement, null when undeclared), change (improved, regressed, unchanged or unknown), and how many Sessions errored, meaning the Evaluator's own code broke. A test case's value is the mean over its Sessions, and a Metric is averaged only over the paired_test_cases both sides have a value for, so check that count before trusting a delta. Say a Metric improved or regressed only from change; unknown means no judgement, so never infer a direction from the Metric's name. pipeline_metrics compares DURATION, TOKENS and COST the same way. Each test case lists the Sessions each side scored and, per Score Metric keyed {evaluator_id}:{metric_key}, each side's mean; that is where to look for the test cases behind a regression. Resolve evaluator ids to names with list_evaluators. Results are partial while status is REPLAYING or SCORING. headline gives each side's Composite (0 to 1, 1 best) and normalized_means. When comparable is false the two sides used different formulas: report no change between them and give incomparable_reason; each side's composite_weights shows the formula it used. aggregates gives each Metric over every Session a side scored, not just the paired test cases: each side's whole-run entry (a Score's mean, a Label's shares), delta, share_deltas for a Label and change. Empty until a side's scoring runs end. :param experiment_id: The Experiment's id. :param max_test_cases: Most test cases to return; metrics still cover every test case. :returns: The results, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

try_evaluatorA

Tries Evaluator source on one Session and returns what it found. Persists nothing.

Use it to check a draft before showing it as ready, and to judge a replayed Session against its source. The source is an Evaluation Function: a Python function that reads one Session and reports named Metrics declared with @metrics. To try a saved Evaluator, read a version's python_code with get_evaluator and pass it. A try that judges with a model costs a model call per judged turn on the customer's provider.

test_case_id hands the Evaluation Function that Dataset test case's expected data, so a correctness Evaluator can be tried on any Session; leave it out to use the test case the Session replayed, if any.

outcome ERRORED means the code broke: read error_detail and fix it. metrics are the values per address with their rationales. trace_summary says which Session Tools the evaluator called. If status is RUNNING the wait ran out: poll get_evaluation_try. :param pipeline_name: Name of the pipeline the Session belongs to. :param python_code: The Evaluation Function's source. :param session_id: The Session to judge: a search_session_id, or a single-turn run's query_id. :param test_case_id: A Dataset test case whose expected data the Evaluation Function receives. :param wait_seconds: How long to wait for the result before handing back the id to poll. :returns: The try report, or an error message.

search_pipeline_with_paramsA

Searches using a pipeline with params.

Uses the specified pipeline to perform a search with the given query and params. Params can be arbitrary parameters to customize the search behavior. Filters can be used as well under the "filters" key in params. Filters follow the Haystack filter syntax: https://docs.haystack.deepset.ai/docs/metadata-filtering. Before executing the search, checks if the pipeline is deployed (status = DEPLOYED). Returns search results. :param pipeline_name: Name of the pipeline to use for search. :param query: The search query to execute. :param params: The parameters to customize the search.

:returns: Search results or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_pipeline_logsA

Fetches logs for a specific pipeline.

Retrieves log entries for the specified pipeline, with optional filtering by log level. This is useful for debugging pipeline issues or monitoring pipeline execution. :param pipeline_name: Name of the pipeline to fetch logs for. :param limit: Maximum number of log entries to return (default: 30). :param level: Filter logs by level. If None, returns all levels. :param after: The cursor to fetch the next page of results.

:returns: Pipeline logs or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_templateA

Fetches detailed information for a specific pipeline or indexing template, identified by its template_name. :param template_name: The name of the template to fetch.

:returns: Pipeline or indexing template details or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

delete_deployment_tagB

Removes a tag from a deployment. Tag matching is case-insensitive. :param deployment_id: ID of the deployment. :param tag_name: Tag to remove. :returns: The deployment's full tag list after removal, or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

search_pipelineA

Searches using a pipeline.

Uses the specified pipeline to perform a search with the given query. Before executing the search, checks if the pipeline is deployed (status = DEPLOYED). Returns search results. :param pipeline_name: Name of the pipeline to use for search. :param query: The search query to execute.

:returns: Search results or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

update_evaluatorA

Renames an Evaluator, saves new source as a new version, or both. Send only what changes.

New source adds a version; the Evaluator's Metric Groups judge with the newest version from the next run on, and past runs keep the version they used. Validate the new code with try_evaluator first. Source the Evaluator already had in its history adds no version, so reverting is safe. hub-api rejects code that changes what an existing Metric measures (its shape, grain or range, a narrowed vocabulary), and a changed declaration can make a Metric Group weight unusable: check weights with list_metric_groups afterwards. Read the current source with get_evaluator. :param evaluator_id: The Evaluator's id. :param name: The new name; must not be taken. :param python_code: The new Python source. :returns: The Evaluator, or an error message.

create_indexC

Creates a new index within your Haystack Enterprise Platform workspace. :param index_name: Unique name of the index to create. :param yaml_configuration: YAML configuration to use for the index. :param description: Description of the index to create. :returns: A message and the created index, or an error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
create_index(data={'key': 'value'}, threshold=10)

# Call with references
create_index(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
create_index(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_pipelinesA

Retrieves a list of all pipeline available within the currently configured deepset workspace. :param after: The cursor to fetch the next page of results. If there are more results to fetch, the cursor will appear as next_cursor on the response. :returns: List of pipelines or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_templatesA

Retrieves a list of all available pipeline and indexing templates. :param limit: Maximum number of templates to return (default: 100). :param pipeline_type: The type of pipeline to return. :param after: The cursor to fetch the next page of results. If there are more results to fetch, the cursor will appear as next_cursor on the response.

:returns: List of pipeline templates or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_deploymentB

Fetches details for a specific deployment, including its active revision and runtime status. :param deployment_id: ID of the deployment to fetch. :returns: Deployment details or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_datasetsA

Lists the workspace's Datasets, newest first, without their test cases.

A Dataset is a named list of test cases (a recorded Session or a set of inputs, with optional expected data) that an Experiment replays against a pipeline version. Each entry has its dataset_id, test_case_count and the pipeline_ids its test cases belong to. Read the test cases with get_dataset; pass dataset_id to create_experiment. The API has no paging: a result of exactly limit Datasets may be cut off; raise limit (at most 200) or narrow with pipeline_name. :param pipeline_name: Only Datasets with a test case on this pipeline, when given. :param limit: Most Datasets to return (at most 200). :returns: The Datasets, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

copy_test_casesA

Copies test cases from any Dataset of the workspace to the end of this one.

Each copy keeps the Session or inputs, name, expected data and scripts, and gets its own id, so editing a copy leaves the original untouched. Find ids with get_dataset. :param dataset_id: The Dataset to copy into. :param test_case_ids: The test cases to copy, in order. :returns: The Dataset with all its test cases, or an error message.

get_indexB

Fetches detailed configuration information for a specific index, identified by its unique index_name. :param index_name: Unique name of the index to fetch. :returns: The index configuration or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

search_templatesA

Searches for pipeline or indexing templates based on name or description using semantic similarity. :param query: The search query. :param top_k: Maximum number of results to return (default: 10). :param pipeline_type: The type of pipeline to return ('indexing' or 'query'; default: 'query').

:returns: Search results with similarity scores or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

grep_object_storeA

Search for a regex pattern in a string stored in the object store.

Returns matches with surrounding context, similar to grep.

:param object_id: The id of the object to search in the format @obj_001. :param pattern: Regular expression pattern to search for. :param path: Navigation path to a nested string attribute (optional). :param case_sensitive: Whether the search should be case sensitive (default: False). :return: Matches with context, or a message if no matches found.

get_pipelineA

Fetches information for a specific pipeline, identified by its unique pipeline_name. :param pipeline_name: The name of the pipeline to fetch. :returns: Pipeline details or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_search_historyA

Retrieves search history for the configured deepset workspace.

Returns past searches run in the workspace, including queries, answers, prompts, feedback, and metadata. Use this to inspect what users have searched for, analyze usage, or debug pipeline behavior.

Each entry includes:

  • request.query — the search query text

  • time / created_at — when the search ran

  • duration — how long it took (seconds)

  • status — 'success' or 'failed'

  • pipeline.name — which pipeline handled the query

  • response — the list of search results

  • feedback, labels, note — user annotations

Use the after parameter with the next_cursor value from the previous response to fetch the next page. :param limit: Maximum number of entries to return per page (default 10, max 1000). :param after: ISO-8601 timestamp cursor to fetch entries older than this point. Pass the value from next_cursor on the previous response. :param query_filter: An OData filter expression to narrow down results. Supported fields: query, client_source_path, pipeline_version_id, answer, api_key, created_at, created_by, tags/tag_id, feedbacks, feedbacks/score, feedbacks/comment, feedbacks/bookmarked, session_id, search_session_id, feedbacks/result_id, request/filters, request/params, duration, labels, status, note. Example: "created_at ge 2024-01-01T00:00:00Z" or "query eq 'my search'". :param sort_field: Field to sort results by. One of: created_at, query, duration, feedbacks/score. Defaults to created_at. :param sort_order: Sort direction — ASC (oldest first) or DESC (newest first). Defaults to DESC. :returns: Paginated list of search history entries or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_pipeline_trace_logsA

Retrieves the log entries for a single Haystack pipeline run trace.

Returns the run's logs (e.g. to diagnose warnings or errors emitted during the run). Each entry includes the logger, level, message, timestamp, and extra fields.

Obtain query_id from list_pipeline_traces or list_pipeline_search_history.

If errors occur outside of the pipeline (e.g. in the API or search history service), they will not appear in the trace logs. Use the get_pipeline_logs tool to retrieve logs for the pipeline itself (e.g. startup errors, configuration issues, orother runtime problems). :param pipeline_name: Name of the pipeline. :param query_id: UUID of the search history query. :returns: List of log entries or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

search_docsA

Search the Haystack Enterprise Platform documentation.

Use this to find information about Haystack components, pipelines, document stores, embedders, generators, retrievers, and other AI platform features. Returns relevant documentation excerpts with source URLs.

:param query: The search query. Be specific about what you're looking for. Examples: 'How to create a RAG pipeline', 'OpenAI embedder configuration', 'document store filters'. :param section: Optional documentation section id from list_doc_sections (for example, how-to-guides or api). Limits results to that section. :returns: Relevant documentation excerpts with source URLs.

get_modelsA

Lists the models including their configuration options available for use in a workspace's pipelines and indexes.

This includes predefined models offered by deepset as well as custom models configured at the workspace or organization level. Use this tool to discover which model names and providers can be used, which configuration options are available, and which default configuration is offered when configuring chat generators. :param limit: Maximum number of models to return per page. :param page_number: The page to fetch, starting at 1. :param connected: If set, only return models for which the workspace does (True) or does not (False) have a working integration configured. :param provider: If set, only return models from this provider. Accepts a well-known ModelProvider value (e.g. 'openai', 'anthropic', 'gemini', 'aws-bedrock') or any other provider name as a plain string. Case-insensitive, exact match. :param model: If set, only return models whose configured model name contains this value (e.g. 'gpt-4o'). Case-insensitive, substring match. :param include_price: If True, each model also carries its effective price in USD per 1,000 tokens (input, output and cache prices), with the workspace's and organization's custom prices applied. Requires read access to costs. Models without a known price have no price, e.g. Azure models that are only identified by their deployment name. Defaults to False. :returns: A page of models including their configuration options or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

delete_metric_groupA

Deletes a Metric Group together with all its scoring runs. This cannot be undone: get a yes first.

The Evaluators themselves stay. hub-api refuses with a message while something else still uses the group; relay that message. Afterwards every Experiment that used the group can no longer change sides or rerun failed replays (hub-api answers 409). :param metric_group_id: The Metric Group's id. :returns: A confirmation, or an error message.

get_from_object_storeA

Use this tool to fetch an object from the object store.

You can fetch a specific object by using the object's id (e.g. @obj_001). You can also fetch any nested path by using the path-parameter (e.g. {"object_id": "@obj_001", "path": "user_info.given_name"} -> returns the content at obj.user_info.given_name).

:param object_id: The id of the object to fetch in the format @obj_001. :param path: The path of the object to fetch in the format of access.to.attr or ["access"]["to"]["attr"]. :return: String representation of the object or of the value at path.

get_workspaceA

Fetches detailed information for a specific workspace by name.

This tool retrieves comprehensive details about a specific workspace, including its unique ID, supported languages, and configuration settings. Use this when you need detailed information about a particular workspace. :param workspace_name: The name of the workspace to fetch details for. :returns: Workspace details or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

rescore_experimentA

Scores both sides of an Experiment again with the Metric Group as it is now. Costs money.

Use it after changing the Metric Group's Evaluators or weights (update_metric_group, update_evaluator). Every Session is judged again, so every evaluation is billed again; the Sessions are not replayed. hub-api refuses with a message while a side is still running or if no side has been scored. Follow progress with get_experiment, then read get_experiment_results. :param experiment_id: The Experiment's id. :returns: The Experiment, or an error message.

list_evaluator_templatesA

Lists the built-in Evaluator templates: ready-made Evaluation Functions to start from.

They cover agent efficiency, agent quality, RAG quality and retrieval quality. Each has a key, name, category, its python_code and the Metrics it declares. A template with a judge_model asks a model per Session, so running it costs money. expected_columns are the columns of a Dataset test case's expected data it reads. To use one, pass its name and python_code to create_evaluator; the copy is yours and does not follow the template. :returns: The templates, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_deploymentsA

Lists deployments (AI Gateways) in the currently configured deepset workspace.

A deployment serves a pipeline behind a stable endpoint, independent of the pipeline's own draft/version history. :param after: The cursor to fetch the next page of results. :param group_label: Filter deployments by group label. :param tags: Filter deployments by tags (matches if any tag is present). :returns: Paginated list of deployments or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

create_deploymentA

Creates a new deployment (AI Gateway), optionally linked to a pipeline.

A deployment created without an origin_pipeline_id has no active revision until you call create_deployment_revision and activate_deployment_revision. Default service sizing follows Development unless explicit sizing fields are provided. :param name: Name of the deployment. :param description: Optional description. :param group_label: Optional label used to group related deployments. :param origin_pipeline_id: ID of the platform pipeline to link, if any. :param deployment_mode: Execution mode, "MANAGED" or "SERVERLESS" (default "MANAGED"). :param service_level: Sizing tier, "PRODUCTION", "DEVELOPMENT", or "CUSTOM" (default "DEVELOPMENT"). :param idle_timeout_in_seconds: Seconds of inactivity before scaling down. :param min_query_replica_count: Minimum number of query replicas. :param max_query_replica_count: Maximum number of query replicas. :param max_index_replica_count: Maximum number of index replicas. :param cpu_request: Requested CPU per replica. :param cpu_limit: CPU limit per replica. :param memory_request: Requested memory per replica. :param memory_limit: Memory limit per replica. :param gpu_limit_gigabyte: GPU memory limit in gigabytes. :returns: The created deployment or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
create_deployment(data={'key': 'value'}, threshold=10)

# Call with references
create_deployment(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
create_deployment(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_indexesA

Retrieves a list of all indexes available within the currently configured deepset workspace. :param after: The cursor to fetch the next page of results. If there are more results to fetch, the cursor will appear as next_cursor on the response. :returns: List of indexes or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_sessionsA

Lists a pipeline's Sessions that a scoring run can judge, newest last activity first.

A Session is the turns that share a search_session_id; a run without one is a single-turn Session named by its query_id. Only Sessions whose every turn still has its trace are listed. session_id is the id a scoring run takes. To find Sessions that went wrong (a failed turn, negative feedback), use list_pipeline_traces with an OData filter instead and take each row's search_session_id, or its query_id when that is empty. :param pipeline_name: Name of the pipeline. :param origin: Only Sessions whose every turn came from a Service, the pipeline's own API, or the Playground. :param deployment_id: Only Sessions whose every turn this Service served. :param pipeline_version_id: Only Sessions whose every turn this pipeline version served. :param revision_id: Only Sessions whose every turn this Service revision served. Exact where a version is not: one version can be pushed to a Service more than once. :param since: ISO-8601 time; only Sessions last active at or after it. :param until: ISO-8601 time; only Sessions last active at or before it. :param limit: Most Sessions per page (at most 200). A page can hold fewer and still have a next. :param cursor: The next value of the previous page. :returns: One page of Sessions, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

search_component_definitionsA

Searches for components based on name or description using semantic similarity. :param query: The search query :param top_k: Maximum number of results to return (default: 5) :param haystack_version: Optional version of Haystack to use. Pass the same version as specified in the pipeline yaml's dependencies section for the haystack-ai package.

:returns: ComponentSearchResults model or error message string

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

deactivate_deploymentB

Marks a deployment as no longer desired to be served, keeping its active revision intact. :param deployment_id: ID of the deployment. :returns: The updated deployment or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_metric_groupsA

Lists the workspace's Metric Groups, newest first.

A Metric Group is a named, ordered set of Evaluators. It belongs to the workspace, not to a pipeline: a scoring run judges chosen Sessions of one pipeline with it, and an Experiment scores both its sides with one. With pipeline_name, each entry's last_run is its newest scoring run on that pipeline without the grid (status, selection, timing), or null when it never ran there; read a run's results with get_experiment_run. weights says how much each Metric counts toward the group's Composite (empty: no Composite); a weight with usable false says in unusable_reason why it will not count in a new run. The API has no paging: a result of exactly limit groups may be cut off (at most 200 are ever reachable). :param pipeline_name: A pipeline to attach each Metric Group's most recent scoring run on. :param limit: Most Metric Groups to return (at most 200). With pipeline_name each one costs a call. :returns: The Metric Groups, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

update_indexA

Updates an index in the specified workspace.

Only the fields you pass are changed; a field left as None is not touched (it is not cleared server-side).

Pass yaml_configuration to replace the index's YAML. When provided, pass the complete, updated configuration (not just the changed parts); it is validated before being applied. If validation fails and skip_validation_errors is False, it returns error messages.

All other parameters are index settings that can be updated independently of the YAML:

  • updated_index_name: rename the index.

  • description: new description.

  • max_allowed_batch_size: cap the number of files indexed per batch (1-500). Lower values reduce the chance that heavy files exceed the queue timeout and get retried.

  • max_index_replica_count: maximum number of index replicas (1-10).

  • gpu_enabled: enable or disable GPU acceleration.

  • capture_traces: record an indexing trace for every file queued for this index.

  • instance_size: pod size used to index files ("small", "medium", "large", or "xl").

  • file_name_prefix_filter: prefix pattern (e.g. "myprefix*") selecting which files are indexed. Can only be updated while the index is not deployed.

  • file_meta_filter: metadata conditions (field/operator/value, AND-combined) selecting which files are indexed. Can only be updated while the index is not deployed. :param index_name: Name of the index to update. :param updated_index_name: Optional new name for the index. :param yaml_configuration: Optional complete, updated YAML configuration for the index. :param description: Optional new description. :param max_allowed_batch_size: Optional per-pipeline cap on files indexed per batch (1-500). :param max_index_replica_count: Optional max number of index replicas (1-10). :param gpu_enabled: Optional toggle for GPU acceleration. :param capture_traces: Optional toggle for recording an indexing trace per queued file. :param instance_size: Optional pod size: "small", "medium", "large", or "xl". :param file_name_prefix_filter: Optional file-name prefix pattern filter. :param file_meta_filter: Optional metadata conditions filtering which files are indexed. :param skip_validation_errors: If True (default), updates the index even if validation fails. If False, stops update when validation fails.

:returns: Updated index or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
update_index(data={'key': 'value'}, threshold=10)

# Call with references
update_index(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
update_index(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

replay_sessionA

Replays one Session against a pipeline version into a new Session. Costs money.

Experiment support, for when you need it: to reproduce or retry the replay of one test case that failed or looks wrong, replay that test case's Session on the version the Experiment's side uses. It is a paid pipeline run on the customer's models: say what it costs and get a yes first. The replay is not linked to the Experiment, so the new Session is not added to it and changes none of its results. To retry an Experiment's failed replays inside the Experiment, use rerun_failed_experiment with rerun="replays". The source Session and the deployed pipeline are untouched.

FIRST_USER_MESSAGE replays the first turn only; ALL_USER_MESSAGES replays every turn of a chat in order. Leave it unset to use the server's default (the first turn), and say so when reporting. The run's session_id is the new Session; judge it with try_evaluator. If status is still CREATED or STARTED the wait ran out: poll get_session_replay with its session_replay_run_id. When it is FAILED, read error_detail and the logs.

setup_source and cleanup_source are optional Python run around the pipeline in an isolated worker. Setup must define exactly one public top-level function taking no arguments and returning a mapping with optional env (dict[str, str]), inputs (dict[str, Any], keyed by the pipeline's declared input names) and logs (list[str]); its env and inputs take precedence over the Session's own. Cleanup runs even when the replay failed; it must define one public top-level function taking the setup's return value (None without a setup) and returning a mapping with optional logs. Helpers must be underscore-prefixed or imported. Omit either to skip that step. :param pipeline_name: Name of the pipeline. :param session_id: The Session to replay: a search_session_id, or a single-turn run's query_id. :param pipeline_version_id: The pipeline version to replay against, e.g. the Experiment side's version. :param replay_mode: FIRST_USER_MESSAGE or ALL_USER_MESSAGES; unset uses the server's default. :param setup_source: Python source run before the pipeline; unset skips the step. :param cleanup_source: Python source run after the pipeline; unset skips the step. :param wait_seconds: How long to wait for the replay before handing back the run to poll. :returns: The replay run, with the new Session's session_id, or an error message.

list_deployment_revisionsA

Lists revisions of a deployment, i.e. the history of pipeline configurations it has served. :param deployment_id: ID of the deployment. :param after: The cursor to fetch the next page of results. :returns: Paginated list of revisions or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_deployment_metricsB

Fetches per-replica CPU/memory usage, resource limits, and replica counts for a deployment. :param deployment_id: ID of the deployment. :param start_ms: Start of the time range, in unix milliseconds. :param end_ms: End of the time range, in unix milliseconds. :returns: Deployment metrics or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

validate_indexA

Validates the provided index YAML configuration against the deepset API. :param yaml_configuration: The YAML configuration to validate. :returns: Validation result with original YAML or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
validate_index(data={'key': 'value'}, threshold=10)

# Call with references
validate_index(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
validate_index(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

create_datasetA

Creates a Dataset, optionally with its first test cases. Replays nothing and costs nothing.

Each test case is either a recorded Session (session_id, find them with list_sessions) or inputs to send to the pipeline, never both. A Session needs pipeline_name, the pipeline it was recorded on. A Session sent twice becomes one test case. Add more later with add_test_cases. Then run it with create_experiment using the returned dataset_id. :param name: What the Dataset is called. :param pipeline_name: The pipeline the Sessions were recorded on; required when a test case has a session_id. :param test_cases: The test cases to start with; none by default. :returns: The created Dataset, or an error message.

create_experimentA

Creates an Experiment that compares a candidate pipeline version against a baseline.

Both sides are scored by the same Metric Group over the test cases of one Dataset. The baseline is either another pipeline version (give baseline_pipeline_name and baseline_pipeline_version_id together) or Recorded (leave both unset): a Recorded baseline reuses the Sessions each test case recorded, with nothing replayed. The candidate is always a pipeline version that will be replayed on each test case.

Creating costs money: it replays the pipeline on the customer's models, and then every Session is judged by the Metric Group's Evaluators, which are billed when they use an LLM. Call it first with preview=True: that starts nothing and returns, per side, how many Sessions are reused_sessions and how many replays_needed, plus cells (Sessions times Evaluators) against max_cells. Show that to the user and get a yes before creating for real. sessions_per_test_case sets how many Sessions each side scores per test case (1..50); existing Sessions on that version are reused and only the shortfall is replayed. Set reuse_sessions=False to replay every Session instead of reusing any, for example after a change outside the pipeline's configuration such as a secret; it costs more replays, so preview it. A Recorded baseline still scores the Dataset's own Sessions. Find ids with list_metric_groups (metric groups) and list_experiments (an existing Experiment's dataset_id). Read the running or finished Experiment with get_experiment_results; follow its progress with get_experiment. :param name: Human-readable name for the Experiment. :param dataset_id: The Dataset's id (the UI's Dataset dropdown). :param metric_group_id: The Metric Group id to score both sides with. :param candidate_pipeline_name: Name of the candidate pipeline. :param candidate_pipeline_version_id: The candidate pipeline version to replay. :param baseline_pipeline_name: Baseline pipeline name; omit for a Recorded baseline. :param baseline_pipeline_version_id: Baseline version id; required when baseline_pipeline_name is given. :param sessions_per_test_case: Repetitions per test case (1..50, default 1). :param replay_mode: FIRST_USER_MESSAGE replays the first turn only; ALL_USER_MESSAGES replays every turn. :param reuse_sessions: False replays every Session each side scores and reuses none (default True). :param preview: True returns the plan (what would be reused and replayed) and creates nothing. :returns: The created Experiment, or with preview the plan, or an error message.

get_pipeline_versionA

Fetches a specific version of a pipeline by its version ID. :param pipeline_name: Name of the pipeline. :param version_id: UUID of the version to fetch. :returns: Pipeline version details or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

validate_pipelineB

Validates the provided pipeline YAML configuration against the deepset API. :param yaml_configuration: The YAML configuration to validate. :returns: Validation result with original YAML or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
validate_pipeline(data={'key': 'value'}, threshold=10)

# Call with references
validate_pipeline(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
validate_pipeline(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

sed_object_storeA

Find and replace text in a string stored in the object store using regex.

Applies substitution (like sed s/pattern/replacement/) and stores the result as a new object, returning its ID. The original object is not modified.

:param object_id: The id of the object to modify in the format @obj_001. :param pattern: Regular expression pattern to find. :param replacement: Replacement string. Supports backreferences like \1, \2. :param path: Navigation path to a nested string attribute (optional). :param count: Maximum number of replacements (0 = replace all, default: 0). :param case_sensitive: Whether the pattern match should be case sensitive (default: False). :return: New object ID with the modified string and a preview of the result.

create_metric_groupA

Creates a Metric Group: a named, ordered set of Evaluators to score Sessions of any pipeline with.

The group names Evaluators, not versions, so each run judges with their newest versions. Running it costs money if an Evaluator is judged. Find Evaluator ids with list_evaluators.

weights say how much each Metric counts toward the group's Composite, as {evaluator_id, metric_key, weight} entries. weight is a number above 0 and relative: weights are divided by their sum, so 2, 1, 1 count as 50%, 25%, 25%. Each Evaluator must be in the group, each metric_key must be one its newest version declares with a Normalized mean (a Score with both range and better, or a Label with a scale), and no pair may repeat; otherwise hub-api rejects the request. Without weights a group has no Composite. A stored weight with usable false and an unusable_reason means a newer Evaluator version dropped the Metric or its normalization: it is kept but no longer counts in new runs. :param name: The Metric Group's name. :param evaluator_ids: The Evaluators to run, in the order results show them (at least one). :param weights: Optional Metric weights, as described above. :returns: The created Metric Group, or an error message.

create_pipeline_versionA

Creates a new version of an existing pipeline with the provided YAML configuration.

Use this to update a pipeline's configuration. Each call creates a new immutable version, preserving the full history of changes.

If is_draft is True, and there is already a draft version, the existing draft will be finalized and incremented to a new version number. :param pipeline_name: Name of the pipeline to create a version for. :param yaml_configuration: The new YAML configuration for this version. :param description: Optional description of what changed in this version. :param is_draft: If True, the version is created as a draft (default: False). :returns: The newly created pipeline version or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
create_pipeline_version(data={'key': 'value'}, threshold=10)

# Call with references
create_pipeline_version(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
create_pipeline_version(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

delete_datasetA

Deletes a Dataset and all its test cases. This cannot be undone: get a yes first.

Experiments that used the Dataset keep their results but lose the link to it. hub-api refuses with a message while something else still uses the Dataset; relay that message. Afterwards every Experiment that used the Dataset can no longer change sides or rerun failed replays (hub-api answers 409). :param dataset_id: The Dataset's id. :returns: A confirmation, or an error message.

list_deployment_activityB

Lists activation and revision activity for a deployment. :param deployment_id: ID of the deployment. :param after: The cursor to fetch the next page of results. :returns: Paginated list of activity events or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_custom_componentsA

Get a list of all installed custom components. :param haystack_version: Optional version of Haystack to use. Pass the same version as specified in the pipeline yaml's dependencies section for the haystack-ai package.

:returns: ComponentDefinitionList model or error message string.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

search_pipeline_with_filtersB

Searches using a pipeline with filters.

Uses the specified pipeline to perform a search with the given query and filters. Filters follow the Haystack filter syntax: https://docs.haystack.deepset.ai/docs/metadata-filtering. Before executing the search, checks if the pipeline is deployed (status = DEPLOYED). Returns search results. :param pipeline_name: Name of the pipeline to use for search. :param query: The search query to execute. :param filters: The filters to apply to the search.

:returns: Search results or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_experiment_runA

Reads one scoring run: how its cells ended, a summary per Metric, then the grid rows.

A scoring run is a Metric Group judging chosen Sessions of one pipeline. Find one with list_metric_groups (last_run) or list_experiments (a side's scoring_runs). It judges each chosen Session with each Evaluator; one cell per pair. counts says how the cells ended: errored is the Evaluator's own code breaking (see the cell's error_detail), not a low Metric; failed is a cell that never ran and can be retried. metrics summarises each Evaluator's Metric over every row, rows past max_rows included: mean, min and max for a Score, a count per label for a Label, and how often it did not apply. Each row is a Session with its cells; a cell's metrics carry the value per address (session, turn/2, ...) and the rationale the Evaluator wrote, which is what to group failures by. run.selection says whether the Sessions were SAMPLED or HAND_PICKED; only sampled runs say anything about traffic as a whole. composite is the Metric Group's single number for the run, 0 to 1 with 1 best, from normalized_means (each Metric on that scale) weighted by run.composite_weights, the formula the run started with. When it has no value it says reason and lists the Metrics that block it in missing. aggregate is the API's whole-run result per Metric: how its Sessions fell out (valued, errored, failed, pending, ...), coverage and the Metric's mean or label shares, in the units it declares; it is null until the run ends. usage is what the pipeline spent on the run's Sessions (tokens, duration, cost in USD, null unless cost_status is priced). evaluator_versions says which version of each Evaluator judged and what its Metrics declare. The filters keep only the cells whose Session's origin, Service or pipeline version match (a cell still running has no origin and matches none): they narrow counts, rows and metrics, but not aggregate, usage, normalized_means or composite, which stay whole-run. :param pipeline_name: Name of the pipeline. :param metric_group_id: The id of the Metric Group the run scored with. :param run_id: The run's id. :param max_rows: Most rows to return; the summaries still cover every row. :param origin: Only cells whose Session came from a Service, the pipeline's own API, or the Playground. :param deployment_id: Only cells whose Session this Service served. :param pipeline_version_id: Only cells whose Session this pipeline version served. :param session_id: Only this Session's row. :returns: The run report, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

run_componentA

Run a Haystack component with the given parameters.

This tool allows you to execute a Haystack component by providing its type and initialization parameters, then passing input data to get results. Use this to test components and see how they would work in your pipeline. :param component_type: The type of component to run (e.g., "haystack.components.builders.prompt_builder.PromptBuilder") :param init_params: Initialization parameters for the component :param input_data: Input data for the component :param input_types: Optional type information for inputs (inferred if not provided). For custom types use the full import path (e.g. haystack.dataclasses.document.Document for Document) :param haystack_version: Optional version of Haystack to use for the component. Pass the same version as specified in the pipeline yaml's dependencies section for the haystack-ai package.

:returns: Dictionary containing the component's outputs or error message string

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
run_component(data={'key': 'value'}, threshold=10)

# Call with references
run_component(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
run_component(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

delete_deploymentA

Deletes a deployment along with all of its revisions. This cannot be undone. :param deployment_id: ID of the deployment to delete. :returns: Confirmation or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_evaluatorsA

Lists the Evaluators in the workspace.

An Evaluator is a versioned Python function that judges a Session and reports named Metrics. Each entry carries its newest version's id and the Metrics that version declares (name, shape, grain and, for a closed Label, its vocabulary and, if it declares one, its scale; for a Score, its range and better), but not the source. Evaluators belong to the workspace, not to a pipeline; a Metric Group picks which ones a scoring run judges with. The API has no paging: a result of exactly limit Evaluators may be cut off, and Evaluators past the 200 cap are reachable only by splitting the list with archived. :param limit: Most Evaluators to return (at most 200). :param archived: true for only archived Evaluators, false for only the others; omit for both. :returns: The Evaluators, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_component_familiesA

Lists all Haystack component families that are available on deepset. :param haystack_version: Optional version of Haystack to use. Pass the same version as specified in the pipeline yaml's dependencies section for the haystack-ai package.

:returns: ComponentFamilyList model or error message string

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

delete_experimentA

Deletes an Experiment and its results. This cannot be undone: get a yes first.

The Sessions it reused, its replays and its scoring runs are kept, so later Experiments can reuse them. :param experiment_id: The Experiment's id. :returns: A confirmation, or an error message.

get_evaluation_tryA

Reads an ad-hoc try that try_evaluator handed back while it was still running.

EXPIRED means the result aged out (tries are kept for an hour): run try_evaluator again. :param pipeline_name: Name of the pipeline. :param try_id: The try_id from try_evaluator. :returns: The try report, or an error message.

update_experimentA

Renames an Experiment or changes its candidate or baseline. Changing a side costs money.

Send only what changes. A changed side is planned again as on a new Experiment: Sessions that already exist on it are reused, the rest are replayed, and it is judged again once they have finished; its previous scoring run is stopped and the other side is left alone. Only renaming costs nothing. Call it first with preview=True: that changes nothing and returns, for each changed side, reused_sessions and replays_needed (a side left alone is null). Show that to the user and get a yes before changing for real. Follow progress with get_experiment. :param experiment_id: The Experiment's id. :param name: A new name. :param candidate_pipeline_name: Pipeline of the new candidate; give it with its version id. :param candidate_pipeline_version_id: The new candidate version. :param baseline_pipeline_name: Pipeline of the new baseline; give it with its version id. :param baseline_pipeline_version_id: The new baseline version. :param recorded_baseline: True makes the baseline the Dataset's recorded Sessions, with nothing replayed. :param preview: True returns the plan and changes nothing. :returns: The updated Experiment, or with preview the plan, or an error message.

create_evaluatorA

Creates an Evaluator from Python source and adds it to the workspace. Judged Metrics cost money when run.

Always validate new code first: run it on a real Session with try_evaluator and fix what it reports before saving. python_code is the Evaluation Function; its @metrics declaration names the Metrics it reports, and hub-api rejects code whose declaration it cannot read. Start from list_evaluator_templates rather than from scratch. The name must be unused in the workspace. The Evaluator scores nothing until a Metric Group runs it: add it to existing groups with metric_group_ids (each at the end of its set), to a new group with new_metric_group_name, or later with update_metric_group. Change it later with update_evaluator. :param name: The Evaluator's name; must not exist in the workspace yet. :param python_code: The Evaluation Function's Python source. :param metric_group_ids: Existing Metric Groups to add it to. :param new_metric_group_name: Also creates a Metric Group of this name holding only this Evaluator. :returns: The created Evaluator, or an error message.

get_experimentA

Reads one Experiment: its test cases and how far each side has got. Free to call.

Use it to follow an Experiment after create_experiment, update_experiment or a rerun, and to see why a side failed. status and each side's status go REPLAYING, SCORING, then ENDED or FAILED. Per side: run_counts (replays by status, failed ones can be replayed again), scoring_counts (evaluations; failed and errored ones can be judged again), error (why it could not be scored) and experiment_run_id (the scoring run, for get_experiment_run). The Sessions each side scored are not included; they are per test case in get_experiment_results. To retry what failed use rerun_failed_experiment; to see why one replay failed, read it with get_session_replay (its id is on the Session's row in get_experiment_run). :param experiment_id: The Experiment's id, from list_experiments. :returns: The Experiment, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_experimentsA

Lists the workspace's Experiments, newest first.

An Experiment compares a candidate pipeline version against a baseline on the test cases of one Dataset: each side gets its Sessions (reused, or replayed against its version) and is scored by the same Metric Group. The baseline is another version, or, when recorded, the Sessions the Dataset recorded. status and each side's status go REPLAYING, SCORING, then ENDED or FAILED; a side's error says why it failed and scoring_counts how its evaluations ended. Read how the candidate did against the baseline with get_experiment_results. To read one side's scoring run cell by cell, pass its scoring_runs[].experiment_run_id, that entry's pipeline_id resolved to a name with list_pipelines, and the Experiment's metric_group_id to get_experiment_run. The API has no paging: a result of exactly limit Experiments may be cut off; raise limit (at most 200) or narrow with pipeline_name. :param pipeline_name: Only Experiments with either side on this pipeline, when given. :param limit: Most Experiments to return (at most 200). :returns: The Experiments, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

remove_test_casesA

Removes test cases from a Dataset. Destructive: the removed test cases are gone, so get a yes first.

Ids that are not in the Dataset are ignored. :param dataset_id: The Dataset's id. :param test_case_ids: The test cases to remove. :returns: The Dataset with the test cases left, or an error message.

list_custom_component_installationsB

List custom component installations. :param limit: Maximum number of installations to return per page. :param after: The cursor to fetch the next page of results.

:returns: Custom component installations or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

run_evaluatorA

Runs one Evaluator version on one Session and keeps the result. A judged Evaluator costs money.

Unlike try_evaluator, which runs source you send and stores nothing, this runs a saved Evaluator version and stores an Evaluation Run that shows in list_evaluation_runs and in the Metric's history over time. Use it to judge one Session with an Evaluator that already exists; to judge many Sessions with a Metric Group use start_experiment_run. An Evaluator that judges with a model costs a model call per judged turn on the customer's provider, so say so and get a yes first. Find the version id with get_evaluator (latest_version or versions) and the Session with list_sessions.

outcome ERRORED means the Evaluator's code broke: read error_detail. metrics are the values per address with their rationales. If status is still CREATED or STARTED the wait ran out: poll get_evaluation_run with the evaluation_run_id. :param pipeline_name: Name of the pipeline the Session belongs to. :param evaluator_version_id: The exact Evaluator version to run. :param session_id: The Session to judge: a search_session_id, or a single-turn run's query_id. :param wait_seconds: How long to wait for the result before handing back the id to poll. :returns: The Evaluation Run, or an error message.

list_deployment_tagsB

Lists distinct tag strings attached to deployments in the workspace.

Useful for autocomplete when adding tags, or to see how deployments are currently grouped. :param name: Case-insensitive substring filter on tag names. :param order: Sort order for the returned tags, "ASC" or "DESC" (default "ASC"). :returns: List of distinct tag names or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_secretsA

Lists all secrets available in the user's deepset organization or in a specific workspace.

Use this tool to retrieve a list of secrets with their names and IDs. This is useful for getting an overview of all secrets before retrieving specific ones. :param limit: Maximum number of secrets to return (default: 10) :param after: The cursor to fetch the next page of results

:returns: List of secrets or error message

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_doc_sectionsA

List the main sections of the deepset AI Platform documentation.

Use this to understand what documentation is available and help users navigate to the right section. Pass a section id to search_docs as section to limit search results to that part of the docs.

:returns: A list of documentation sections with descriptions and URLs.

deploy_indexA

Deploys an index to production.

This function attempts to deploy the specified index in the given workspace. If the deployment fails due to validation errors, it returns an object describing the validation errors. :param index_name: Name of the index to deploy.

:returns: A string indicating the deployment result or the validation results including errors.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_pipeline_search_historyA

Retrieves search history for a specific pipeline with pagination.

Returns past searches run with the given pipeline. Each entry includes the search query (request.query), results (response), timing (time/duration), status, user info, feedback, labels, and note.

Use the after parameter with next_cursor from the response to fetch the next page. :param pipeline_name: Name of the pipeline to get search history for. :param limit: Maximum number of entries to return per page (default 10, max 1000). :param after: ISO-8601 timestamp cursor to fetch entries older than this point. Pass the value from next_cursor on the previous response. :param query_filter: An OData filter expression to narrow down results. Supported fields: query, client_source_path, pipeline_version_id, answer, api_key, created_at, created_by, tags/tag_id, feedbacks, feedbacks/score, feedbacks/comment, feedbacks/bookmarked, session_id, search_session_id, feedbacks/result_id, request/filters, request/params, duration, labels, status, note. Example: "created_at ge 2024-01-01T00:00:00Z" or "status eq 'failed'". :param sort_field: Field to sort results by. One of: created_at, query, duration, feedbacks/score. Defaults to created_at. :param sort_order: Sort direction — ASC (oldest first) or DESC (newest first). Defaults to DESC. :returns: Paginated list of search history entries or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

add_test_casesA

Adds test cases to the end of a Dataset. Replays nothing and costs nothing.

Each test case is either a recorded Session (session_id) or inputs, never both. A Session needs pipeline_name. A Session the Dataset already holds is skipped. To reuse test cases from another Dataset use copy_test_cases. :param dataset_id: The Dataset's id. :param test_cases: The test cases to add, in order. :param pipeline_name: The pipeline the Sessions were recorded on; required when a test case has a session_id. :returns: The Dataset with all its test cases, or an error message.

update_metric_groupA

Replaces a Metric Group's name and Evaluator set, and optionally its Metric weights.

This is a full replace of name and Evaluators: send every Evaluator the group keeps, in order (read them with list_metric_groups). Past runs are unaffected; each recorded the versions it used, and a run's Composite keeps the weights it started with, so edits change only later runs. Leave weights out to keep the stored weights of the Evaluators that stay (those of removed Evaluators are dropped); send an empty list to clear them all, which removes the Composite.

weights say how much each Metric counts toward the group's Composite, as {evaluator_id, metric_key, weight} entries. weight is a number above 0 and relative: weights are divided by their sum, so 2, 1, 1 count as 50%, 25%, 25%. Each Evaluator must be in the group, each metric_key must be one its newest version declares with a Normalized mean (a Score with both range and better, or a Label with a scale), and no pair may repeat; otherwise hub-api rejects the request. Without weights a group has no Composite. A stored weight with usable false and an unusable_reason means a newer Evaluator version dropped the Metric or its normalization: it is kept but no longer counts in new runs. :param metric_group_id: The Metric Group's id. :param name: The name to keep or change to. :param evaluator_ids: Every Evaluator the group keeps, in order (at least one). :param weights: Replaces the stored weights; None keeps them, [] clears them. :returns: The Metric Group, or an error message.

yq_object_storeA

Query or transform structured data stored in the object store using a jq filter expression.

Use this to filter, map, select, or rewrite nested data without pulling the whole object into context, e.g. {"object_id": "@obj_001", "filter": ".items[] | select(.active) | .name"}. Transforming filters work the same way, e.g. .config.timeout = 30.

If the targeted value is a JSON or YAML string (e.g. a pipeline's YAML config), it is parsed before the filter runs so you can navigate into its fields; a transformed result is re-serialized back to that same format.

By default, the result is stored as a new object and returned with a preview, so you can reference it further (e.g. get_from_object_store) or feed it back into another yq_object_store call. Set store=False if you just want the full result inline and don't need it stored, e.g. for a small lookup you'll act on immediately.

:param object_id: The id of the object to query in the format @obj_001. :param filter: jq filter expression to apply, e.g. .field, .items[], .[] | select(.status=="done"), or a transformation like .field = "value". :param path: Navigation path to a nested attribute to query instead of the whole object (optional). :param store: Whether to store the result as a new object (default: True). Set to False to get the full result inline instead of a preview, without writing anything to the object store. :return: New object ID and a preview of the result, the full result if store is False, or a message if the filter is invalid or produced no results.

get_evaluation_runA

Reads one Evaluation Run: its progress, or what the Evaluator found once it ended.

Use it to follow a run run_evaluator handed back while still going. status ENDED with outcome SUCCEEDED has metrics; ERRORED means the Evaluator's code broke (see error_detail); FAILED never completed and can be run again. :param pipeline_name: Name of the pipeline. :param evaluation_run_id: The evaluation_run_id from run_evaluator or list_evaluation_runs. :returns: The Evaluation Run, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_cost_breakdownA

Reads the LLM cost of the workspace, or of one pipeline, grouped by model, pipeline, Service or API key.

Use this to find what drove the cost: which models, pipelines, Services or API keys spent the most. Costs are in USD. Results are sorted by cost, highest first, unless you set sort_by and sort_order. Each entry has a key (a model or provider name, or a UUID for the other dimensions) and a readable label. A deleted pipeline still shows up with group_by='pipeline', labelled with its UUID. total is the number of groups across all pages; when has_more is true, read the next page_number. total_requests counts queries, not individual LLM calls. A cost_total of null means the group had usage but none of it was priced. Without dates the range is the last 30 days.

A Service (group_by='deployment') is a published Service endpoint; a deployed pipeline is a pipeline (group_by='pipeline'). The two overlap: a query through a Service that runs a pipeline counts in both, so never add Service groups and pipeline groups together. Usage that did not go through a Service shows up as __unattributed__ under group_by='deployment'.

Without workspace the figures cover the whole organization, as the Cost Management page does for an organization admin; this needs the organization admin role. Use workspace for one workspace. In that organization view pipeline_name and Service names can't be used (they belong to a workspace); pass Service ids instead.

Narrow the breakdown with services, providers and api_keys, for example the models of one Service. They combine: usage must match every kind you set, and any one value within a list. :param group_by: The dimension to group by: model, workspace, pipeline, deployment (a Service), api_key or provider. :param pipeline_name: Restrict to this pipeline. Omit for the whole workspace. Needs Pipelines read as well as Costs read. :param start_date: Inclusive start as an ISO timestamp. Defaults to 30 days before end_date. :param end_date: Exclusive end as an ISO timestamp. Defaults to no upper bound. :param sort_by: Sort by label, cost_total, total_tokens or total_requests. Defaults to cost_total. :param sort_order: ASC or DESC. Defaults to DESC. :param limit: Groups per page, from 1 to 100. :param page_number: The page to read, starting at 1. :param services: Restrict to these Services (deployment in the API; a published Service endpoint, not a deployed pipeline, which is a pipeline). Each value is a Service name or its id, the key from get_cost_breakdown with group_by='deployment'. Looking a Service up by name needs Services read as well as Costs read; an id needs only Costs read. :param providers: Restrict to these providers. Use the provider ids from get_cost_breakdown with group_by='provider', such as bedrock_converse or openai, not their display names. :param api_keys: Restrict to these API keys. Use the key ids from get_cost_breakdown with group_by='api_key', never a key's secret token. :returns: One page of the breakdown, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_session_replayA

Reads one replay run. Free to call.

Experiment support, for when you need it: to see why an Experiment's replay failed or looks wrong, read its run. Get the id from a row's session_replay_run_id in get_experiment_run (the row is the Session the replay produced), or from replay_session. The run has status (CREATED, STARTED, ENDED or FAILED), error_detail when it failed, setup_logs and cleanup_logs from the setup and cleanup steps, session_id (the new Session the replay produced), source_session_id (the Session it replayed), test_case_id (the Dataset test case it was for, if any), and the trace_ids it produced. Only a FAILED run is retryable, with rerun_failed_experiment (rerun="replays"). :param pipeline_name: Name of the pipeline. :param replay_run_id: The replay run's session_replay_run_id. :returns: The replay run, or an error message.

load_skillA

Loads the full content of a bundled skill guide by name.

Use this tool to read the step-by-step instructions for a specific skill supported by this server.

Available skills: - custom-code: Use this skill whenever writing, generating, reviewing, or fixing a Haystack custom component (deepset_cloud_custom_nodes.code.code_component.Code) or custom tool (deepset_cloud_custom_nodes.tools.code_tool.CodeTool) for the deepset/Haystack enterprise platform. Triggers include requests to create a custom component, a custom tool, to check custom code against the platform's structural constraints (single class/function per file, required decorators, type annotations, allowed dependencies), or to extend the existing pipeline for functionality that is not already covered by existing components.

:param skill_name: The name of the skill to load (see the list above). :returns: The skill's markdown content, or an error message listing available skills if not found.

get_latest_custom_component_installation_logsB

Get the logs from the latest custom component installation.

:returns: The latest installation logs or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_pipeline_traceA

Retrieves the Haystack pipeline run trace including all spans for a single search history record.

Returns the execution trace for one query: every component span with essential tags (excluding the component's input and output), timing, and failure details. Use this to deep-dive into a specific query run identified by its query_id (obtainable from list_pipeline_traces or list_pipeline_search_history).

For a targeted look at one span including the input and output at one component, use get_pipeline_trace_span_tags; for the logs, use get_pipeline_trace_logs. :param pipeline_name: Name of the pipeline. :param query_id: UUID of the search history query whose trace to retrieve. Obtain this from the query_id / search_history_id field of a list_pipeline_traces or list_pipeline_search_history response. :returns: The pipeline trace entry including all spans or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_evaluation_runsA

Lists a pipeline's Evaluation Runs, newest first: one Evaluator version judging one Session each.

Includes the runs behind a scoring run's cells and the ones run_evaluator made. Each has its session_id, evaluator_version_id, outcome and metrics. Read one with get_evaluation_run. :param pipeline_name: Name of the pipeline. :param limit: Most runs to return (at most 200). The API has no further paging: a result of exactly this many may be cut off. :returns: The runs, or an error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

activate_deploymentB

Re-activates a deployment's current active revision, marking it as desired to be served.

Use this to bring a deactivated deployment back online without pushing a new revision. :param deployment_id: ID of the deployment. :returns: The updated deployment or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

get_secretA

Retrieves detailed information about a specific secret by its ID.

Use this tool to get information about a specific secret when you know its ID. The secret value itself is not returned for security reasons, only metadata. :param secret_id: The unique identifier of the secret to retrieve

:returns: Secret information or error message

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

list_workspacesB

Retrieves a list of all workspaces available to the user.

This tool provides an overview of all workspaces that the user has access to. Each workspace contains information about its name, ID, supported languages, and default idle timeout settings. :returns: List of workspaces or error message.

The output is automatically stored and can be referenced in other functions. Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

restore_pipeline_versionC

Restores a non-draft pipeline version to be editable as a new draft.

The previous draft (if any) is finalized, getting an incremented version number. :param pipeline_name: Name of the pipeline to restore. :param version_id: UUID of the version to restore. :returns: The restored pipeline version or error message.

All parameters accept object references in the form @obj_id or @obj_id.path.to.value.

Examples::

# Direct call with values
restore_pipeline_version(data={'key': 'value'}, threshold=10)

# Call with references
restore_pipeline_version(data='@obj_123', threshold='@obj_456.config.threshold')

# Mixed call
restore_pipeline_version(data='@obj_123.items', threshold=10)The output is automatically stored and can be referenced in other functions.

Returns a formatted preview with an object ID (e.g., @obj_123). Use the object store tools in combination with the object ID to view nested properties of the object. Use the returned object ID to pass this result to other functions.

set_evaluator_archivedA

Archives or unarchives an Evaluator. Nothing is deleted.

An archived Evaluator keeps its versions and name, and its Metric Groups still score with it; it only shows an archived_at time. Use it to retire an Evaluator without breaking history. :param evaluator_id: The Evaluator's id. :param archived: True to archive it, False to unarchive it. :returns: The Evaluator, or an error message.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 109 tools

Disambiguation3/5

Most tools target a distinct resource+action, but several clusters overlap heavily: search_pipeline, search_pipeline_with_params and search_pipeline_with_filters are near-duplicates, and list_search_history, list_pipeline_search_history, list_pipeline_traces and list_sessions all describe browsing past runs with subtly different semantics from the same OData fields. The cost trio (get_cost_over_time/totals/breakdown) and the evaluator/experiment run tools (get_experiment_run, list_experiment_runs, list_evaluation_runs, get_evaluation_run) require careful reading to distinguish.

Naming Consistency4/5

The surface is overwhelmingly a predictable snake_case verb_noun pattern (list_pipelines, create_deployment, get_experiment_results, delete_dataset). Deviations are minor and readable: object-store helpers follow a noun_object_store shape (yq_object_store, grep_object_store, sed_object_store), and a few verbs are nonstandard (load_skill, try_evaluator, rerun_failed_experiment). No camelCase or chaotic mixing.

Tool Count2/5

109 tools is far beyond a well-scoped set and forces the agent to sift many near-adjacent options. The breadth spans genuinely different domains (pipelines, deployments, indexes, costs, datasets, experiments, evaluators, components, docs, object store, workspaces, secrets), but the volume plus per-domain granularity (e.g. three search variants, five object-store helpers, four deployment-tag/revision tools) makes discovery costly.

Completeness4/5

Coverage is unusually deep: full pipeline version lifecycle (create/patch/restore/validate/deploy), deployment revisions/activation/tags/stats, index create/update/deploy/validate, dataset and experiment CRUD, evaluator versioning and scoring runs. Gaps remain: no delete for pipelines, indexes or workspaces, and secrets are only list/get with no create/update/delete, so some lifecycle work is a dead end.

Maintenance

ActivityActive
ResponsivenessNo recent community issues