Agent Toolsets
What are Toolsets?¶
Toolsets in LLMling define groups of related tools that agents can access. Rather than configuring individual tool permissions, you enable entire categories of functionality through toolset configurations.
Think of toolsets as "skill packages" that give agents specific capabilities - from file operations to process management to agent coordination.
Available Toolsets¶
Agent Management (agent_management)¶
Enables agents to discover, coordinate with, and manage other agents:
Provides tools:
list_available_agents- Discover other agents in the poollist_available_teams- Discover available teamsdelegate_to- Assign tasks to other agentsask_agent- Ask other agents directlyadd_agent- Add new agents to the pooladd_team- Create new teamsconnect_nodes- Connect agents/teams in workflowscreate_worker_agent- Create worker agents as toolsspawn_delegate- Create temporary delegate agents
File Access (fsspec)¶
File system operations via fsspec (supports local, S3, GCS, etc.):
agents:
reader:
toolsets:
- type: file_access # Local filesystem by default, or use url: s3://bucket, etc.
Provides tools:
read_file- Read files (text or binary)list_directory- List directory contents with filteringwrite_file- Write content to filesdelete_path- Delete files or directoriesedit_file- Edit files with smart matchingdownload_file- Download files from URLs
Resource Access (resource_access)¶
Access to LLMling resources and configurations:
Provides tools:
load_resource- Load resource contentget_resources- Discover available resources
Code Execution (code_execution)¶
Execute Python code and system commands:
Provides tools:
execute_python- Execute Python code (WARNING: No sandbox)execute_command- Execute CLI commands
Process Management (process_management)¶
Start and manage background processes:
Provides tools:
start_process- Start background processesget_process_output- Check process outputwait_for_process- Wait for process completionkill_process- Terminate processesrelease_process- Clean up process resourceslist_processes- Show active processes
Tool Management (tool_management)¶
Register and manage tools dynamically:
Provides tools:
register_tool- Register importable functions as toolsregister_code_tool- Create tools from code
User Interaction (user_interaction)¶
Direct interaction with users:
Provides tools:
ask_user- Ask users clarifying questions
History (history)¶
Access conversation history and statistics:
Provides tools:
search_history- Search conversation historyshow_statistics- Display usage statistics
Integrations (integrations)¶
External service integrations:
Provides tools:
add_local_mcp_server- Add local MCP serversadd_remote_mcp_server- Add remote MCP serversload_skill- Load Claude Code Skills
Common Patterns¶
Basic Assistant¶
agents:
assistant:
model: openai:gpt-4
toolsets:
- type: resource_access
- type: file_access
- type: user_interaction
Team Coordinator¶
agents:
coordinator:
model: openai:gpt-4
toolsets:
- type: agent_management
- type: history
system_prompts:
- You coordinate tasks across multiple agents
Developer Agent¶
agents:
developer:
model: anthropic:claude-3-5-sonnet-20241022
toolsets:
- type: file_access
- type: code_execution
- type: process_management
- type: tool_management
system_prompts:
- You are a software developer with full system access
Restricted Agent¶
agents:
restricted:
model: openai:gpt-4-mini
toolsets: [] # No toolsets = only predefined tools
tools:
- calculator
- web_search
Security Considerations¶
Toolsets provide different levels of system access:
Low Risk:
fsspec- File system operations (configurable scope)resource_access- Access to configured resourcesuser_interaction- User prompts only
Medium Risk:
agent_management- Can create and coordinate agentshistory- Access to conversation dataintegrations- External service access
High Risk:
code_execution- Can execute arbitrary codeprocess_management- System process controltool_management- Can modify available tools
Always use the principle of least privilege - only enable toolsets that agents actually need.
Custom Toolsets¶
You can also create custom toolsets by implementing your own provider:
See the Tools documentation for implementation details.