Assistant tools are defined in assistant_agent/tools.py and executed through ToolRuntime.run(name, arguments).
- Core tools: always present at loop start (
task_complete,task_failed,request_input, plusemail_sendwhen SMTP available). - Meta tool:
get_tool_specsfor lazy loading. - Loadable tools: everything else (files, reminders, research, etc.).
Availability is computed by available_function_names(...) from runtime config and job context.
file_listfile_readfile_writefile_appendfile_movefile_copyfile_convertfile_delete(soft delete to trash)file_searchfile_semantic_search
Guardrails:
- paths must resolve under shared root,
.assistantis read-only for writes/deletes,- cache/source-archive visibility is restricted,
- workspace index is updated on file mutations.
dropbox_list: paginated Inbox/Outbox file metadata, including nested files.dropbox_import: one revision-pinned Inbox document; mandatory clean scans and successful conversion before workspace publication/indexing.dropbox_export: one scanned workspace snapshot toOutbox/job-<id>, only with saved standing delivery permission; no overwrite or internal-file export.dropbox_delete: delete one listed Inbox/Outbox file by path and current revision, only when explicitly requested by the requester.
Tools are loadable only when Dropbox is configured and the workspace is available.
Export is additionally hidden unless DROPBOX_ALLOW_EXPORTS=true. Retry an
uncertain export using the same source and filename. Dropbox content is untrusted
data. See connection, limits and privacy.
email_searchemail_read(character or line paging)email_send
email_send behavior:
- recipient domain allowlist enforcement,
- per-hour send rate limiting,
- optional threading (
in_reply_to,References), - markdown-to-HTML multipart generation,
- attachment handling from file path or inline content,
- optional append to IMAP Sent folder when configured,
- disclosure footer handling for external domains.
Memory:
memory_remember— create an atomic durable memory or expiring working context. Inferred memories requiremetadata.evidenceandmetadata.why_future_relevant;metadata.explicit_user_requested=trueis the alternative only when the user explicitly asked to remember it. Other metadata keys, includingsource_evidence, are rejected. Kinds include decision, agreement, incident, preference, operating_rule, project_context, and working_context; importance is 1-5.memory_search— semantic search when query is non-empty, keyword search when blankmemory_updatememory_forget
Notes and entities are retired and migrated into unified memory; see Memory System.
contact_searchcontact_readcontact_createcontact_updatecontact_delete
Contacts are deliberately separate from memory records.
reminder_createreminder_listreminder_updatereminder_cancel
Recurrence supports hour|day|week|month with interval and anchor-day logic.
deep_research_requestdeep_research_status
deep_research_request is an async request tool; the parent job transitions to waiting.
Command:
command_execute
Calendar:
calendar_sync— triggers a refresh from all configured calendar API providers; no-op when no providers are activecalendar_list_busy— lists busy windows across all configured providers within a date/time range; titles are redacted unlessallow_read_event_detailsis enabled. Onlycomplete=trueverifies availability;provider_errorsandstatus=degraded/no_providersindicate an incomplete check, even whenbusyis empty.calendar_list_events— lists calendar events from all configured providers; titles and details subject to the same policycalendar_create_event— creates an event on the specified provider (or the default provider whenprovideris omitted); supportsalert_minutesoverridecalendar_update_event— updates a managed event by its assistant-assigned ID; acceptsalert_minutesoverridecalendar_delete_event— deletes a managed event; no-ops gracefully when the event is already gone on the provider
Calendar tools are exposed only when at least one provider has credentials configured in the environment. Write operations (create/update/delete) are restricted to events the assistant itself created — non-managed events appear in free/busy results but cannot be modified. See docs/calendar-providers.md for provider setup.
context_search— semantic search across memories, jobs, reminders, inbound/outbound emails, and contacts; acceptsrecent_only=trueto limit to last 7 daysjob_search— search past job history by query and status
web_searchis a function tool.openrouter:web_searchis attached server-side when non-Perplexity search model is used.openrouter:fusionis attached when fusion is configured.
Terminal:
task_completetask_failedrequest_input
Meta:
get_tool_specs
request_limit_increase is an auxiliary tool dynamically injected by task-agent when near configured resource limits.