Skip to main content

How to Configure Tools

๐Ÿ”ง Tools ยท ๐Ÿ“‹ Prompt

The tools provider gives the agent callable tools โ€” functions the LLM can invoke during the conversation loop. Each tool source contributes a set of related tools. You control which sources are active and how they behave.

List and Enable Tool Sourcesโ€‹

za agents capabilities tool-sets list
za agents capabilities tool-sets configure <source-name>

Configure Provider Settingsโ€‹

za agents capabilities tool-sets settings

Who may call each tool, the model directly or Python in the REPL, is set here with sandbox_only_sources, sandbox_only_tools, direct_only_sources and direct_only_tools; see Who May Call a Tool.

Tools can load on demand: the model first sees a group of tools only by its name and description (a tools source or an MCP server) and loads the tools it needs by searching. The agent's configuration says which groups load on demand:

SettingTypeDefaultApplies to
defer_tools in tools_provider_configurationboolfalseEvery built-in tools source
defer_tools in a source's block, e.g. web_tools_source_configurationboolnullThat source; unset follows tools_provider_configuration
defer_tools in mcp_tools_provider_configurationboolfalseEvery MCP server the agent uses
defer_tools in a mount in mountsboolnullThat server; unset follows mcp_tools_provider_configuration

The most specific value decides: a source's or mount's own, else its provider's. A setting rule's loading decides over all of them, the agent's over the tenant's unless the tenant locked it, see How rules decide. In the agent editor, Tools โ†’ Settings and MCP Tools โ†’ Settings have the providers' Defer tools switch, and each built-in source and mounted server has a Loading select (Default, Up front, On demand) on its row.

"tools_provider_configuration": { "defer_tools": true },
"index_tools_source_configuration": { "enabled": true, "defer_tools": false },
"mcp_tools_provider_configuration": { "defer_tools": true, "mounts": [{ "name": "ms365" }, { "name": "crm", "defer_tools": false }] }

How the model finds on-demand tools is the agent's tool search method:

MethodHow it worksModels
serverThe vendor lists the tools and searches themOpenAI and Azure OpenAI responses models, Anthropic and Azure Anthropic chat models
clientOur search, in the vendor's tool search protocolSame as server
emulatedA search_tools tool any model can call; the tools it finds are added to the next requestAny chat or responses model

Each model call uses the first of the agent's methods that its model lists in tool_search_methods. When none fits, every on-demand tool goes up front: that costs tokens but hides nothing. Platform Admin warns about this on the agent's page, for its main model, its selectable models and its sub-agents' models.

Tool search methods, tried top to bottom

Tool search is off by default: every tool goes up front. The agent switches it on and picks and orders its methods in tool_search_provider_configuration:

SettingTypeDefaultDescription
enabledboolfalsetrue loads on-demand tools through tool search; false sends every tool up front
include_sourceslistnullThe methods to use, preferred first; a method listed here is on. Unset: the methods whose own block sets "enabled": true, in the order server, client, emulated
exclude_sourceslistnullMethods never to use

client and emulated also take settings in client_tool_search_source_configuration and emulated_tool_search_source_configuration:

SettingTypeDefaultDescription
cataloguegroups, names, descriptionsnamesHow much the search tool's description lists of the on-demand tools: their groups, the groups with tool names, or every tool with a one-line description
max_resultsint8Most tools one search loads
"tool_search_provider_configuration": { "enabled": true, "include_sources": ["client", "emulated"] },
"emulated_tool_search_source_configuration": { "catalogue": "groups" }

Tool Sourcesโ€‹

SourceCLI nameDescription
Index Toolsindex-toolsSearch, browse, and inspect any Zeta Alpha index
Tag Toolstag-toolsList, search within, create, and manage user tags
Document Toolsdocument-toolsRead, locate, and retrieve metadata for individual documents
User Document Toolsuser-document-toolsSearch, list (with status), add, edit, and remove the user's own uploaded documents
Presentation Toolspresentation-toolsBuild PowerPoint decks on a corporate template from My Documents, or on PowerPoint's default design (Zeta Alpha platform only)
Office Add-in Toolsoffice-addin-toolsChange the email, workbook, document or presentation open next to the Zeta Alpha panel in Outlook, Excel, Word and PowerPoint, asking the user before each change by default
Note Toolsnote-toolsCreate, edit, delete, attach, and list the user's notes
Web Toolsweb-toolsFetch and browse content from the web (optional extra web_tools)
Image Toolsimage-toolsValidate images against retrieved document pages
DataFrame Toolsdataframe-toolsLoad, analyze, and visualize tabular data (CSV/Excel) (optional extra dataframe_tools)
Plot Toolsplot-toolsPlot data the agent passes directly, shown inline in the conversation (optional extra dataframe_tools)
Image Generation Toolsimage-generation-toolsGenerate pictures with an image model, shown inline in the conversation
SQL Database Toolssql-database-toolsExplore and query SQL databases (optional extra sql_tools)
Platform Docsplatform-docsBrowse and read Zeta Alpha platform documentation
OnboardingonboardingGuided new-user onboarding: step instructions in the prompt plus a progress-reporting tool
Sub-Agentsub-agentSpawn isolated sub-agents for parallel work
Attemptsattempts-toolsCommit candidate answers to a scored lineage on tasks that match a rubric
Refinerefine-toolsLet the agent request edits to its own memories, skills, prompt notes and sub-agents

Index Toolsโ€‹

Search, browse, and inspect any Zeta Alpha index.

za agents capabilities tool-sets configure index-tools

Toolsโ€‹

ToolDescription
searchSearch the knowledge base for documents matching a query, ranked by relevance. facets (faceted field paths) counts the distinct values of those fields over every hit, not just the returned page, in facet_results
browseList documents by criteria with sorting โ€” for exploring, not relevance-ranked
get_filter_optionsDiscover available filter fields and their values for the current index
get_document_fieldsDiscover metadata fields available on documents by inspecting a sample
get_index_configurationRetrieve index configuration: filters, sort options, sources, and indexes

Configurationโ€‹

SettingTypeDefaultDescription
fe_base_urlstr"https://search.zeta-alpha.com"Frontend base URL for building source links
page_sizeint10Results per search page
browse_page_sizeint20Results per browse page
max_facet_termsint1000Values a requested search facet lists before it reports itself truncated
default_retrieval_unit"document" | "chunk""chunk"Return precise passages or full documents
default_retrieval_method"knn" | "keyword" | "mixed""mixed"Semantic search, keyword matching, or hybrid
default_collapse_keystr or nullnullGroup results by this field (deduplication)
descriptionstr""Tell the agent what it's searching over
description_fieldstr"custom_metadata.metadata.abstract"Field path for document descriptions
metadata_fieldslist[str | MetadataFieldConfig]["...title", "...source", "...created"]Metadata fields to extract from hits. Plain strings are included in all scopes; use {"field": "...", "scopes": ["search"]} for fields that should only appear in search/browse results (excluded from listing previews). Available scopes: "search", "listing".
known_filterslist[FilterHint][]Pre-defined filter hints (field_path, description, values, example_values)
sort_field_mappingdict[str, str]{"date": "date", ...}Map user-friendly sort names to backend field names
show_resultsboolfalseStream the query and top hits (title, link) of search and browse to the chat timeline

Describe Your Knowledge Baseโ€‹

The most important settings for search quality are description and known_filters. Write description as you would describe the collection to a new researcher:

description (str) []: R&D papers from arXiv and top ML/AI conference venues (NeurIPS, ICML, ICLR), covering 2000โ€“2026.

For known_filters, provide a JSON array:

known_filters (List[FilterHint]) [[]]: [{"field": "source", "description": "Publication venue"}, {"field": "year", "description": "Publication year"}]

Auto-Generate with the Index Explorerโ€‹

Instead of writing the configuration by hand, use the Index Explorer โ€” an instruction source that gives the agent a methodology to autonomously probe your document collection and generate a ready-to-use configuration.

Step 1: Enable the Index Explorer instruction source:

za agents capabilities instruction-sources configure index-explorer

Step 2: Start the development UI and tell the agent:

za agents dev

Run the Index Explorer

The agent will inspect the index structure, discover facets, run targeted searches, and output a complete configuration you can paste into your index-tools settings.

tip

After the Index Explorer generates the configuration, you can disable it โ€” it's only needed during setup.


Tag Toolsโ€‹

List, search within, create, and manage user tags (collections/folders of documents).

za agents capabilities tool-sets configure tag-tools

Toolsโ€‹

ToolDescription
list_user_tagsList all tags the user has access to (own or shared)
list_documents_in_tagList documents in a tag with pagination and metadata
search_in_tagSearch for documents within a specific tag (semantic + keyword, scoped)
tag_documentAdd a document to a tag
untag_documentRemove a document from a tag
tag_noteAdd a note to a tag
untag_noteRemove a note from a tag
create_tagCreate a new personal tag with name and optional description

Configurationโ€‹

SettingTypeDefaultDescription
max_documents_per_pageint20Max documents per page when listing tag contents

Document Toolsโ€‹

Read, locate, and retrieve metadata for individual documents by ID or fuzzy name.

za agents capabilities tool-sets configure document-tools

Toolsโ€‹

ToolDescription
read_documentRead the full content of a document by its document ID
locate_documentFind a document by fuzzy title, URL, or file name
retrieve_metadataGet structured metadata for a list of documents by their IDs

Configurationโ€‹

SettingTypeDefaultDescription
page_sizeint10Number of results for locate_document keyword search

User Document Toolsโ€‹

Search, list, add, edit, and remove the user's own uploaded documents.

za agents capabilities tool-sets configure user-document-tools

Toolsโ€‹

ToolDescription
search_my_documentsSearch the user's private uploaded documents by content relevance
list_my_documentsList the user's uploaded documents with pagination, metadata previews, and ingestion status (PENDING/SUCCESS/ERROR)
create_my_documentCreate and index a document from pasted text so it becomes searchable in the user's private My Documents. Saved as Markdown. With word_documents: true in user_document_tools_source_configuration, the model can also save a Word file (.docx with the Markdown's headings, lists, tables and emphasis) through file_format: "word" (Zeta Alpha platform only)
update_my_documentUpdate a private document's metadata (title, source, authors, year)
delete_my_documentDelete a private document from the user's My Documents

Configurationโ€‹

SettingTypeDefaultDescription
list_page_sizeint20Default page size for listing user documents
show_resultsboolfalseStream the query and top hits (title, link) of search_my_documents, and the created document's card, to the chat timeline
word_documentsboolfalseLet create_my_document also save a Word (.docx) file (Zeta Alpha platform only)

Presentation Toolsโ€‹

Build PowerPoint decks on the user's corporate template. The template is a .pptx or .potx the user uploaded to My Documents; the agent finds it with the User Document Tools. Without a template, the deck uses PowerPoint's default design. Each deck is saved to My Documents as a new .pptx, so earlier versions stay available. It runs on the Zeta Alpha platform only; the agents SDK does not ship it. Configure it under presentation_tools_source_configuration.

Toolsโ€‹

ToolDescription
describe_templateList the template's (or the default design's) slide layouts with their placeholders, and the layout and title of each example slide
create_presentationBuild a deck from a slide list (per slide: a layout name, title, bullets, an optional table, speaker notes, and sources written into the notes) and save it to My Documents. The template's example slides are dropped. Returns the document's link and warnings about content a layout could not hold

Configurationโ€‹

SettingTypeDefaultDescription
fe_base_urlstrhttps://search.zeta-alpha.comNavigator URL the returned document link points to

Office Add-in Toolsโ€‹

Let the agent change what the user has open next to the Zeta Alpha panel in Outlook, Word, Excel and PowerPoint. The tools are offered only on turns sent from the panel, and only those of the app it is open in. Every call goes to the panel, which runs it; a change asks first by default, with a card the user can edit and then allow once, always allow for the chat, or deny. Only the agent the user chats with gets the tools: an agent it delegates to or starts with task sees the open file but returns its content for the first agent to apply. The panel makes the change through Office.js and the agent reads what happened as the tool's output. Whether a change asks follows the source's Asks first setting and the agent's and tenant's setting rules on tools:office_addin_tools, like any tool. excel_read, word_read and powerpoint_read only read, and run without asking.

Toolsโ€‹

AppToolDescription
Excelexcel_readRead a range's values, formulas and number formats (up to 10,000 cells), find the cells holding a text, or list every sheet's used range, tables, charts and pivot tables. Runs without asking
Excelexcel_writeWrite values and formulas to a range, with an optional comment on its first cell. Formulas that reach outside the workbook (WEBSERVICE, HYPERLINK, IMAGE, RTD, CALL, REGISTER.ID, FILTERXML, DDE) are refused. Reports the previous contents
Excelexcel_formatNumber format, fill, font, alignment, wrapping, borders, column width, merging, and allowed input (a dropdown list or a number range)
Excelexcel_rulesConditional formatting: color scale, data bars, icons, above, below, between, equal, contains, formula, top or bottom N, duplicates, or clear
Excelexcel_tableCreate a table, or sort, filter, style or total one
Excelexcel_chartAdd a chart, or change a chart's type, titles and position
Excelexcel_pivotAdd a pivot table with row, column, value and filter fields
Excelexcel_sheetAdd, rename, copy, delete or show a sheet, freeze panes, color its tab, place a picture
Wordword_readRead the outline, paragraphs with styles, the paragraphs holding a text, comments or tracked changes. Runs without asking
Wordword_writeWrite Markdown with Word's styles at the selection, start or end, before or after a paragraph, in place of paragraphs or of a text, or in the header or footer, optionally as a tracked change. Reports what it replaced
Wordword_formatApply a style, highlight, bold, italic, color or alignment to paragraphs or to a text
Wordword_commentAdd a comment, or reply to or resolve one
Wordword_reviewTurn tracked changes on or off; accept or reject all or chosen changes
PowerPointpowerpoint_readRead the layouts and each slide's shapes with id, kind, position and text. Runs without asking
PowerPointpowerpoint_add_slidesAdd slides on the presentation's layouts with a title, bullets, a table and a picture
PowerPointpowerpoint_edit_slideSet a shape's text, add a text box, table or picture, move, resize or delete a shape, change the layout
PowerPointpowerpoint_arrangeMove, duplicate or delete slides
Outlookoutlook_composeOpen a new email, reply or reply all, prefilled with a Markdown body; the user sends it
Outlookoutlook_edit_draftWrite into the open draft, set its subject, add recipients
Outlookoutlook_meetingOpen a prefilled meeting, or fill in the one being written; the user sends it

Pictures are passed as image:<id> from Image Generation Tools or plot:<id> from the plot tools, and must be made in the same answer. Charts on slides are plot pictures: Office.js has no chart API for PowerPoint.

No additional configuration beyond enabled.


Note Toolsโ€‹

Create, edit, and delete notes, attach notes to documents, list the user's notes, and search the notes the user can read.

za agents capabilities tool-sets configure note-tools

Toolsโ€‹

ToolDescription
create_noteCreate a standalone personal note
create_document_noteAttach a note to a specific document by its document ID
update_noteEdit an existing note's content (keeps its document attachment)
delete_noteDelete a note
list_my_notesList the user's notes with pagination
search_notesSearch notes by content: the user's own and those colleagues shared with them. Chat conversations saved as notes are left out; when that empties a page, the response says so and points to the next page

Configurationโ€‹

SettingTypeDefaultDescription
list_page_sizeint20Default page size for listing notes
search_filtersdict{"metadata.DCMI.format": "free_note"}Index filter that selects the notes search_notes returns
search_id_fieldstr"custom_metadata.metadata.identifier"Index field that holds the note ID
search_content_fieldstr"custom_metadata.metadata.abstract"Index field that holds the note content
search_created_at_fieldstr"custom_metadata.metadata.created"Index field that holds the creation date
exclude_chat_notesbooltrueLeave out chat conversations saved as notes

The search_* defaults match the notes-ingestion content source of new tenants. A tenant whose content source maps these note fields to other index fields sets them here; one that does not index the note type at all needs that mapping added and its notes re-ingested.


Web Toolsโ€‹

Fetch and browse content from the web.

Optional extra

Install with pip install zetaalpha.agents[web_tools].

za agents capabilities tool-sets configure web-tools

Toolsโ€‹

ToolDescription
web_fetchFetch a web page and return its content as clean text/markdown
web_searchSearch the web using a federated search engine (only available if federated indexes exist)

Configurationโ€‹

SettingTypeDefaultDescription
output_markdownbooltrueReturn content as markdown instead of plain text
max_content_charsint or nullnullTruncate fetched content to this many characters
timeout_secondsfloat30.0Timeout for each fetch request
search_timeout_secondsfloat or null5.0Timeout for each web_search call, so one slow upstream source can't stall the turn. null disables it
cache_max_sizeint50Maximum number of cached responses
cache_ttl_secondsfloat900.0Cache entry TTL in seconds
upgrade_to_httpsbooltrueUpgrade http:// URLs to https://
blocked_hostnameslist[str] or nullnullAdditional hostnames (matched by suffix) to block from crawling
allowed_hostnameslist[str] or nullnullOptional exact-match hostname allowlist. null disables the allowlist; a non-empty list denies every hostname not listed
allowed_portsset[int]{80, 443}Connection ports allowed for crawling
max_response_bytesint5242880 (5 MiB)Maximum bytes read from a non-PDF response
max_pdf_bytesint20971520 (20 MiB)Maximum bytes read from a PDF response
max_pdf_pagesint50Maximum number of PDF pages to extract
max_pdf_charsint200000Maximum characters extracted from a PDF
allowed_content_typeslist[str] or nullnullOptional content-type allowlist. null uses the built-in default set (HTML, plain text, common XML feeds, and PDF)
untrusted_content_envelopebooltrueWrap fetched content in a <fetched_content> envelope marking it as untrusted web data
show_resultsboolfalseStream the query and top hits (title, link) of web_search to the chat timeline

Securityโ€‹

web_fetch treats every URL and every byte it returns as untrusted. The following protections are always on and cannot be disabled through prompts:

  • SSRF and DNS rebinding. URLs are validated before each request, hostnames are resolved, and requests to private, loopback, link-local, or otherwise reserved IP ranges (including cloud metadata endpoints) are rejected. The resolved IP is pinned for the connection so a hostname cannot resolve to a safe address during validation and a private one at connection time.
  • Redirect bypass. Redirects are not followed automatically; every hop is re-validated and re-resolved, and the chain is capped to a small number of hops.
  • Blind SSRF / OAST exfiltration. Known out-of-band interaction domains (e.g. interaction-collector services and tunnelling providers) are blocked before any connection is made.
  • Oversized and decompression-bomb responses. Responses are streamed and capped by max_response_bytes (or max_pdf_bytes for PDFs); PDF extraction is further bounded by max_pdf_pages and max_pdf_chars.
  • Unsafe content types. Only content types in allowed_content_types are parsed; everything else is rejected. The content type is sniffed, not trusted from the Content-Type header alone.
  • Prompt injection. Fetched content is returned inside a <fetched_content> envelope and any literal envelope tags in the page are escaped, so models can distinguish untrusted web data from instructions.

Use allowed_hostnames, allowed_ports, and allowed_content_types to tighten the defaults for high-assurance deployments. Every fetch emits a structured web_fetch log entry (URL, final URL, status, content type, bytes read, truncation, block reason, and duration โ€” never the page body) for auditing.


Image Toolsโ€‹

Validate images against retrieved document pages using a multimodal LLM.

za agents capabilities tool-sets configure image-tools

Toolsโ€‹

ToolDescription
validate_image_hitVisually compare a user-uploaded image against a rendered PDF page using a multimodal LLM

Configurationโ€‹

SettingTypeDefaultDescription
validation_promptstr(built-in Jinja template)LLM prompt template for visual comparison
render_dpiint96DPI for rendering PDF pages to images

DataFrame Toolsโ€‹

Load, analyze, and visualize tabular data from CSV/Excel files.

Optional extra

Install with pip install zetaalpha.agents[dataframe_tools].

za agents capabilities tool-sets configure dataframe-tools

Toolsโ€‹

ToolDescription
load_dataframeLoad a CSV/Excel document into a named DataFrame
get_dataframe_schemaView column names, types, and sample values
preview_dataframePreview the first few rows
read_dataframeRead rows with pagination
count_dataframe_rowsCount total rows
get_column_valuesGet unique/top values of a specific column
get_column_statisticsGet descriptive statistics for a numeric column
get_missing_value_countsCount missing/null values per column
filter_dataframe_rowsFilter rows using conditions (eq, neq, gt, lt, in, contains, etc.)
sort_dataframe_rowsSort by a column
aggregate_columnSum, mean, min, max, count with optional group-by
merge_dataframesSQL-style join of two DataFrames
concatenate_dataframesConcatenate multiple DataFrames vertically
read_workbook_formulasRead an Excel (.xlsx) document's formulas and defined names with their cached values, for all sheets or one sheet and range (up to 300 formula cells). Offered only with read_workbook_formulas: true in dataframe_tools_source_configuration
create_basic_plotBar, line, or scatter charts
create_multi_series_plotPlots with multiple Y-series overlaid
create_distribution_plotHistogram or box plots
create_time_series_plotTime-series line plots with date parsing
create_correlation_heatmapCorrelation heatmap for numeric columns

No additional configuration beyond enabled.


Plot Toolsโ€‹

Plot data the agent passes directly in the tool call โ€” no loaded dataframe required. The rendered image is shown inline in the conversation; the agent receives a text confirmation and continues its answer.

Optional extra

Requires matplotlib, installed with pip install zetaalpha.agents[dataframe_tools].

za agents capabilities tool-sets configure plot-tools

Toolsโ€‹

ToolDescription
create_plotLine, area, bar (incl. stacked and horizontal), pie, donut, scatter, histogram, or box plot from named series of values

No additional configuration beyond enabled.


Image Generation Toolsโ€‹

Generate pictures (illustrations, diagrams, mock-ups) with an image model. The picture is shown inline in the conversation where the agent places it; the agent receives an image_id and a text confirmation and continues its answer.

The image model is a named LLM configuration of type image (gpt-image-2.5 on OpenAI or Azure OpenAI), set in the agent's image_llm_selection_configuration block:

{
"llm_configuration_name": "gpt-5.2",
"agent_configuration": {
"image_llm_selection_configuration": { "llm_configuration_name": "gpt-image-2.5" },
"image_generation_tools_source_configuration": { "enabled": true }
}
}
za agents capabilities tool-sets configure image-generation-tools

Toolsโ€‹

ToolDescription
generate_imageGenerate one image from a prompt

When the provider's safety system rejects a prompt or the generated picture, or the model is rate limited, the tool reports it to the agent (blocked, rate_limited) instead of failing the turn, so the agent can rephrase or tell the user.

Configurationโ€‹

SettingTypeDefaultDescription
max_images_per_turnint2Images the agent may generate in one answer
request_timeout_secondsfloat180Give up on a generation that does not finish within this time

Quality, output format and moderation strictness live on the LLM configuration's image_settings, see Image models.


SQL Database Toolsโ€‹

Explore schemas and query SQL databases โ€” filter, sort, aggregate, join, and insert without writing raw SQL.

Optional extra

Install with pip install zetaalpha.agents[sql_tools]. For databases other than PostgreSQL, install the appropriate SQLAlchemy dialect driver.

za agents capabilities tool-sets configure sql-database-tools

Toolsโ€‹

ToolDescription
sql_list_tablesList accessible tables
sql_get_table_schemaGet column names and types for a table
sql_preview_dataPreview the first few rows of a table
sql_read_dataRead rows with pagination
sql_count_rowsCount total rows
sql_get_row_by_pkGet a single row by primary key
sql_select_columnsSelect specific columns (deferred plan)
sql_get_column_valuesGet distinct values of a column
sql_filter_table_rowsFilter rows using conditions (deferred plan)
sql_sort_table_rowsSort rows (deferred plan)
sql_aggregate_columnSum, mean, min, max, count with optional group-by (deferred plan)
sql_join_tablesJoin two tables/plans on shared columns (deferred plan)
sql_insert_rowInsert a single row

Tools that produce intermediate results return a named reference for subsequent operations (e.g., filter โ†’ aggregate โ†’ sort โ†’ read).

Configurationโ€‹

SettingTypeDefaultDescription
connection_stringstr"" (required)SQLAlchemy connection string
allowed_schemaslist[str] or nullnull (all)Restrict access to these schemas
allowed_tableslist[str] or nullnull (all)Restrict to these tables (schema.table)
max_rows_per_queryint10000Maximum rows returned per read
query_timeout_secondsint30Query timeout in seconds
Security

Always use allowed_schemas and/or allowed_tables to restrict access. Use a read-only database user when the agent only needs to query.


Platform Documentation Toolsโ€‹

Browse and read the Zeta Alpha platform documentation, giving the agent self-knowledge about the platform.

za agents capabilities tool-sets configure platform-docs

Toolsโ€‹

ToolDescription
list_platform_doc_pagesList all available documentation pages from the sitemap
read_platform_docRead a documentation page and return its content as text

Configurationโ€‹

SettingTypeDefaultDescription
docs_base_urlstr"https://docs.zeta-alpha.com"Base URL of the documentation site
sitemap_pathstr"/sitemap.xml"Path to the sitemap XML
max_content_charsint or nullnullTruncate fetched page content
cache_max_sizeint50Maximum cached pages
cache_ttl_secondsfloat900.0Cache TTL for fetched pages
sitemap_cache_ttl_secondsfloat3600.0Cache TTL for the parsed sitemap
timeout_secondsfloat30.0HTTP request timeout
tip

Pair with the Platform Docs instruction source for a complete self-knowledge setup โ€” instructions tell the agent what the platform can do, tools let it look up how.


Onboardingโ€‹

Drives the guided new-user onboarding flow: injects step-by-step behavioral guidance into the system prompt and provides a tool the agent calls to report progress, which the platform UI renders as a progress bar. The steps list is the single source of truth โ€” step prose, counters, and the generated progress calls all derive from it.

za agents capabilities tool-sets configure onboarding

Toolsโ€‹

ToolDescription
update_onboarding_statusReports the step the user is moving to; reaching the last step marks onboarding complete

Configurationโ€‹

SettingTypeDefaultDescription
stepslistbuilt-in 4-step flowOrdered steps, each with title, content, and optional status_label (progress-bar label, falls back to title)
instructionsstr or nullnullCross-cutting instructions inserted before the steps (e.g. language, terminology)

Custom steps and the opening messageโ€‹

The onboarding chat opens with a static greeting, not one generated from steps: the onboarding bot's bot_params.initial_message (in client_settings.bot_configurations), falling back to the locale bundle's chat.json onboarding.defaultMessage. The agent treats the conversation as already inside step 1, and the default greeting ends with the default flow's first question โ€” so when you override steps, also set initial_message to a greeting that ends with your first step's question. Otherwise the transcript opens with a question that contradicts step 1's instructions, and the agent's first replies become unpredictable.

warning

The platform frontend enables this source at runtime โ€” only for onboarding conversations โ€” by injecting onboarding_tools_source_configuration: { "enabled": true } into the chat's bot params. Two configuration rules follow:

  • Leave enabled unset in the agent configuration. An explicit value there takes precedence over the runtime flag: "enabled": true puts onboarding guidance and the progress tool in every conversation with that agent, and "enabled": false disables onboarding entirely. Configure only steps/instructions.
  • Do not add onboarding to the tools provider's include_sources allowlist. An allowlist overrides the enabled flag entirely, so listing it activates onboarding for every conversation, and defining an allowlist without it silently disables onboarding. Agents used for onboarding should not define an include_sources allowlist.

Sub-Agentโ€‹

Spawn isolated sub-agents to perform focused, parallel work.

za agents capabilities tool-sets configure sub-agent

Toolsโ€‹

ToolDescription
taskLaunch an isolated sub-agent with a prompt and description for a focused unit of work

Configurationโ€‹

SettingTypeDefaultDescription
verbosebooltrueInclude detailed behavioral guidance in tool description
include_in_promptbooltrueInject delegation instructions into the system prompt
extra_instructionsstr or nullnullAppend additional delegation guidance
tool_descriptionstr or nullnullFully replace the default tool description
allow_llm_selectionboolfalseLet the agent pick the sub-agent's LLM by name, within its allowed names
sub_agent_approvalsask, decline, runaskWhat a sub-agent does with a tool call that needs the user's approval, as for delegated agents

Sub-agents run in isolated context: they receive the task prompt and what the user attached to the chat, not the parent conversation. By default a sub-agent cannot launch sub-agents of its own, and task and delegate share one budget per turn, counted across every agent the turn starts: see Sub-Agent Limits. Protected parameters (tenant, auth headers, index configuration) are carried through automatically.

Looking for named agent delegation?

The delegate tool (routing to named specialized agents) comes from the delegation provider, not the sub-agent tool source. See Configuring Delegation.