Toolkits
Toolkits are Agno Toolkit adapters that provide agents with access to external services.
Architecture
Toolkits (Agno adapters) --> workspace_suite (vendor-agnostic) --> Google/Microsoft APIs
All workspace toolkits inherit from BaseToolkit(Toolkit, ABC) in toolkits/base.py.
CalendarToolkit
Multi-provider calendar management (Google Calendar, Microsoft Outlook).
Capabilities: List events, create events, update events, cancel meetings, check availability, find free slots.
from toolkits import CalendarToolkit
calendar = CalendarToolkit(
user_id="user-42",
organizer_email="jane@acme.com",
service_name="google_calendar",
fetch_token_func=fetch_access_token,
)
EmailToolkit
Multi-provider email management (Gmail, Outlook Mail).
Capabilities: Read emails, send emails, reply to threads, search inbox, manage labels/folders.
from toolkits import EmailToolkit
email = EmailToolkit(
user_id="user-42",
service_name="gmail",
fetch_token_func=fetch_access_token,
)
ContactsToolkit
Multi-provider contact management (Google Contacts, Microsoft People).
Capabilities: Search contacts, get contact details, create contacts, update contacts.
from toolkits import ContactsToolkit
contacts = ContactsToolkit(
user_id="user-42",
service_name="google_contacts",
fetch_token_func=fetch_access_token,
)
DriveToolkit
Multi-provider file management (Google Drive, OneDrive).
Capabilities: List files, search files, read file contents, upload files.
from toolkits import DriveToolkit
drive = DriveToolkit(
user_id="user-42",
service_name="google_drive",
fetch_token_func=fetch_access_token,
)
ClaudeCodeToolkit
Dispatches work to Claude Code CLI with MCP plugins and permission hooks. Used by supervisor worker agents.
Capabilities: Execute coding tasks in a repository with configurable permissions, MCP servers, and hooks.
Execution modes: local, ssh, remote_service.
Confirmation required: run_claude_code requires human confirmation before execution.
from toolkits.claude_code import ClaudeCodeToolkit
claude_code = ClaudeCodeToolkit(
user_id="user-42",
worker_config=worker_config,
execution_target_type="local",
)
ManagedAgentsToolkit
Dispatches work to managed agent APIs (Anthropic, OpenAI, Google, or custom webhook).
Providers: anthropic, openai, google, webhook.
Confirmation required: run_managed_agent requires human confirmation before execution.
from toolkits.managed_agents import ManagedAgentsToolkit
managed = ManagedAgentsToolkit(
user_id="user-42",
worker_config=worker_config,
provider_name="anthropic",
)
HITL Confirmation Workflow
Toolkits register tools with requires_confirmation_tools. When an agent calls a confirmation-required tool:
- The run pauses and returns
status: "paused"with atoolsarray - The client inspects/edits tool arguments
- The client sends confirmed tools to the
/chat/commitor/runs/commitendpoint - The agent resumes execution with the updated tools