Skip to main content

How to Assign Built-in Tools

1

List Available Built-in Tools

praisonai tools list
2

Add to TEMPLATE.yaml

# TEMPLATE.yaml
name: my-template
version: "1.0.0"

requires:
  tools:
    - internet_search
    - shell_tool
    - file_read_tool
3

Assign to Agents

# agents.yaml
roles:
  researcher:
    role: Research Agent
    tools:
      - internet_search
  executor:
    role: Executor Agent
    tools:
      - shell_tool
      - file_read_tool

How to Assign Custom Tools from tools.py

1

Create tools.py

# tools.py
def analyze_data(data: str) -> dict:
    """Analyze input data.
    
    Args:
        data: Data to analyze
        
    Returns:
        Analysis results
    """
    return {"analysis": "complete", "data": data}
2

Assign to Agent

# agents.yaml
roles:
  analyst:
    role: Data Analyst
    tools:
      - analyze_data
    tasks:
      analyze:
        description: "Analyze the provided data"
3

Run Template

praisonai templates run ./my-template

How to Assign Tools from External Sources

1

Add tools_sources

# TEMPLATE.yaml
requires:
  tools_sources:
    - praisonai_tools.video
    - ./extra_tools.py
2

Assign External Tools

# agents.yaml
roles:
  video_editor:
    role: Video Editor
    tools:
      - shell_tool
    tasks:
      edit:
        description: |
          Use python -m praisonai_tools.video to edit videos

How to Assign Tools Dynamically with Python

1

Load Template

from praisonai.templates.loader import TemplateLoader

loader = TemplateLoader()
template = loader.load_template("my-template")
2

Create Custom Tools

def custom_tool(input: str) -> str:
    """Custom processing tool."""
    return f"Processed: {input}"
3

Run with Additional Tools

result = template.run(
    task="Process data",
    additional_tools=[custom_tool]
)

Tool Assignment Best Practices

PracticeDescription
Minimal toolsOnly assign tools each agent needs
Clear namingUse descriptive tool names
Document toolsInclude docstrings with Args
Test toolsVerify tools work before assigning
Group relatedKeep related tools together