Skip to main content

Tools

The sunholo.tools module provides a tool management system for AI agents, including config-driven permissions, async orchestration, and tool execution.

Modules

  • Permissions - Config-driven tool access control with email/domain matching and caching
  • Orchestrator - Async concurrent tool execution with config merging

Quick Start

Permission Checking

from sunholo.tools.permissions import permitted_tools

# Define rules
rules = [
{"domain": "company.com", "tools": ["search", "email", "calendar"]},
{"email": "admin@company.com", "tools": ["search", "email", "calendar", "admin"]},
]

defaults = {
"tools": ["search"],
"toolConfigs": {"search": {"max_results": 10}},
}

# Check what tools a user can access
allowed, configs = permitted_tools(
current_user={"email": "user@company.com"},
requested_tools=["search", "email", "admin"],
permission_rules=rules,
default_permissions=defaults,
)
# allowed = ["search", "email"]
# configs = {"search": {"max_results": 10}}

Tool Orchestration

from sunholo.tools.orchestrator import ToolOrchestrator

orchestrator = ToolOrchestrator()
orchestrator.register("search", handler=search_fn, capability="Search the web")
orchestrator.register("email", handler=email_fn, capability="Read emails")

results = await orchestrator.run(
tools=["search", "email"],
question="Find recent reports",
)
# results = {"results": {...}, "errors": {...}, "completed": ["search", "email"]}
Sunholo Multivac

Get in touch to see if we can help with your GenAI project.

Contact us

Other Links

Sunholo Multivac - GenAIOps

Copyright ©

Holosun ApS 2026