Skip to main content
Toolsets group tools under a single name so you can give an agent a curated capability set without listing every tool.
The user sends a research task; the research toolset supplies curated web and file tools automatically.

Quick Start

1

Pick a prebuilt toolset

Use one of the prebuilt toolsets for common scenarios:
2

Register a custom toolset

Create your own toolset by combining tools and other toolsets:
3

YAML configuration

Use toolsets in YAML workflows:
4

CLI usage

Use toolsets directly from command line:

How It Works


Configuration Reference

Toolsets API Reference

TypeScript configuration options

Toolsets Rust Reference

Rust configuration options

Prebuilt Toolsets

ToolsetSpec Fields


Common Patterns

Mixing Explicit Tools and Toolsets

Composition with Includes

Environment-Specific Toolsets


CLI Usage

Use toolsets with praisonai run and praisonai chat commands:

YAML Usage

Add toolsets: key under each agent definition:

When to use coding vs development

Both toolsets are useful for code-related tasks but target different workflows. Choose coding when the agent makes targeted edits to source files; choose development for broader scripting and dev-tooling tasks.

Model-family-aware edit order

When an agent has a string llm= model id, the coding toolset advertises the family’s preferred edit primitive first (Claude → apply_patch; GPT → edit_file). Both primitives stay available — only their order changes, matching the guidance the Model Harness prepends to the system prompt.
Unknown or non-string model ids keep the current edit order byte-for-byte — the harness applies no change unless the model id matches a known family.

Custom Toolsets

Register Function

Overwrite Behavior

By default, register_toolset is a silent no-op if the name already exists. Set overwrite=True to replace:

Recursive Includes

Toolsets can include other toolsets with automatic cycle detection:
Circular dependencies raise ValueError:

Performance Note

Tool availability is cached for 30 seconds by default. The list_available_tools() function uses TTL caching to avoid expensive availability checks on every agent initialization, improving performance when creating many agents.

Best Practices

Use the safe toolset in production environments where you need to restrict tool capabilities. It includes only read-only operations like internet_search and read_file.
Use the includes parameter to build on existing toolsets instead of duplicating tool lists:
Register toolsets once during application initialization, not in request handlers:
Use both parameters when you need a toolset plus one additional tool:

Allowed Tools

Environment variable whitelist for tool restriction

Bot Default Tools

Default tools for bot agents

Load MCP Tools

Model Context Protocol tool loading

Tool Resolver

Resolve tools from local tools.py

Model Harness

Per-model-family prompt and edit-order tuning