Internal Capabilities
Internal capabilities (type: "internal") are the built-in tools that ship with the platform — memory, web search, the canvas, document search, sub-chats, tasks, and more. Unlike API, MCP, Computer Use, and Sandbox capabilities (which are built from an options blob), an internal capability is selected by its code and resolved through a central tool registry. There's no options JSON to fill in — you just attach the capability to an agent.
This page is the catalog: which internal capabilities exist, what tools each one provides, and when each is active. For the broader picture of how capabilities fit together, see Capabilities.
How they work
- Each internal capability has a code (e.g.
base, web_search, tasks). A single capability row's code may even be a comma-separated list, activating several tool groups at once. - When a chat starts, the platform collects the active codes from the agent's linked internal capabilities and resolves them into the de-duplicated set of tools registered under those codes.
- Tool names are de-duplicated across all sources — if two capabilities provide a tool with the same name, the first one wins.
For developers
Internal tools are registered in code (and can be contributed by external plugins via Python entry-points). See Tool Plugins for how to register your own tools under a capability code.
Example agent recipes
Internal capabilities are most useful in combination. A few realistic mixes — attach these codes together on an agent to get the described behavior:
| Agent | Capabilities to enable | What it can do |
| Research / briefing | base, web_search, rag, documents, memory | Search the web, search uploaded documents and past chats, save findings as documents, and remember preferences across sessions. |
| Customer support | base, rag, documents, chat_db_edit, memo, tasks | Answer from a knowledge base, track structured tickets in the chat DB, keep session notes, and hand off work via tasks. |
| Data ops | base, sandbox, documents, generic_api_requests | Fetch data over HTTP, crunch and convert files in an ephemeral shell, and save the results as documents. |
| Live App builder | base, canvas_toolkit, documents | Build and iteratively edit an interactive HTML/React page on the canvas. (Canvas tools only activate on a Live Page.) |
| Media analyst | base, video_analysis, video_transcription, audio_diarization | Summarize and transcribe video, pull keyframes, and produce speaker-labelled transcripts. |
base is the sensible default on almost every agent — it carries notifications, URL reading, image/voice generation, and agent-to-agent calls.
Context-gated behavior
Some internal capabilities are conditionally enabled — or remapped — based on the chat context. This is why a capability attached to an agent may not always produce a tool:
| Capability | Condition |
base_dev | Auto-added alongside base only in development environments. |
canvas_toolkit | Dropped unless the chat's page type is html or react (i.e. a Live Page). |
subchats | Remapped to subchats_parent (top-level chat) or subchats_child (chat with a parent) based on the chat hierarchy. |
rag | Adds rag_documents only when the chat has documents & collections enabled. |
scheduled_prompts | Dropped unless the chat has scheduled jobs enabled. |
memory | Built per-request; skipped on temporary chats or when global memory is off. |
web_search_google_serper | Built per-request; requires SERPER_API_KEY in settings (otherwise a warning is logged and no tool is added). |
generic_api_requests | Built per-request (a fresh instance each call). |
Capability reference
Core tools available to all agents (notifications, generation, agent-to-agent communication).
| Tool | Description |
set_chat_title_name | Rename/retitle the chat; auto-derives a title from history if none given. |
notify_user | Updates the "thinking" status message to tell the user what's happening. |
send_push_notification_to_user | Creates a notification for a user and pushes it (optionally with an email body). |
read_content_of_url | Fetches a URL — reads web-page content as text, returns text/data files as-is, or saves downloadable files into the chat. |
hide_message_tool | Hides an agent message that needs no response or is directed to someone else. |
query_agent | Calls another agent in the chat; returns its reply marked as "Response from the [name] Agent". |
call_chat | Calls a specific chat on another agent via the chat's mention name. |
execute_task | Executes a named task on another agent in the chat. |
available_mentions | Lists mentionable entities (users, agents, chats, tasks) available to the user, permission-filtered. |
generate_image | Generates images from text with style/size/reference-image options. |
generate_voice | Text-to-speech; supports single-speaker narration and multi-speaker dialogue. |
| Tool | Description |
wait_seconds | Waits for a specified timeout before the next action (testing/debugging). |
canvas_toolkit — Canvas (Live Pages only)
Interactive canvas for collaboratively creating/editing documents. Only active on html/react pages.
| Tool | Description |
set_html_canvas_safe | Replaces canvas HTML with safety checks, payload validation, and auto-escaping. |
set_canvas_chunked | Updates canvas HTML in chunks to avoid truncation with large content. |
edit_html_canvas_enhanced | Edits parts of canvas HTML (replace, insert, delete, append, replace_script, upsert_script). |
get_canvas_diagnostics | Returns diagnostics about current canvas content (size metrics, validation). |
get_canvas_content | Retrieves canvas HTML with optional filtering (line/char range, CSS selector). |
chat_db_edit — Chat DB (Edit)
Read/write access to the chat database for structured entities.
| Tool | Description |
chatdb_init | Initializes the chat DB (schema/tables) for storing structured entities. |
chatdb_list | Lists/searches entities with filtering operators and pagination. |
chatdb_get | Retrieves a single entity by ID. |
chatdb_add | Creates one or more entities (single or batch). |
chatdb_edit | Updates one or more entities (merge + optimistic locking). |
chatdb_delete | Deletes one or more entities. |
chat_db_read_only — Chat DB (Read Only)
Query-only access to the chat database.
| Tool | Description |
chatdb_list | Lists/searches entities (read-only). |
chatdb_get | Retrieves a single entity by ID (read-only). |
web_search — Web Search (unified)
| Tool | Description |
web_search | Searches the web via the configured provider (Auto, Tavily, Perplexity, Serper, or Internal). |
web_search_perplexity — Web Search (Perplexity)
| Tool | Description |
perplexity_web_search | Perplexity search with workflows for news, entity research, and general inquiries; supports location-based search and authority filtering. |
web_search_gemini_deep_research — Web Search (Gemini Deep Research)
| Tool | Description |
gemini_deep_research | Runs a background Gemini research job, polls to completion, returns the final report + metadata. |
subchats_parent — Subchats (Parent)
Active when the chat is top-level.
| Tool | Description |
create_subchats | Creates subchats in the current chat with optional initial prompts and goals. |
subchats_child — Subchats (Child)
Active when the chat has a parent.
| Tool | Description |
report_information_to_parent_chat | Sends text to the parent chat, optionally analyzing it with the LLM. |
memo — Memo
| Tool | Description |
chat_memo | Sets or appends to the chat memo (info scoped to the chat/session only). |
goal — Goal
| Tool | Description |
set_chat_goal | Replaces the chat goal text when the user explicitly asks to set/change it. |
rag_messages — RAG Messages
| Tool | Description |
rag_search_messages | Semantic search over chat message history. |
rag_documents — RAG Documents
Added by the rag capability when documents are enabled.
| Tool | Description |
rag_search_documents_and_collections | Semantic search across documents and collections. |
documents — Documents
| Tool | Description |
list_collection_documents | Lists documents in a collection (with custom-name metadata). |
list_directories_and_documents | Lists directories and documents at a path in the chat's document tree. |
wait_until_document_text_extraction_is_finished | Waits until a document is "Ready" or until timeout. |
get_document_text | Retrieves the full text (or a portion) of a document by ID. |
save_document | Saves content as a document (TXT, DOCX, MD, HTML, PDF, CSV, XLSX, CUSTOM). |
document_status | Returns a document's processing/availability status. |
settings — Settings
| Tool | Description |
edit_user_setting | Creates/updates a user setting (name + value) scoped to the user's current group. |
tasks — Tasks
| Tool | Description |
get_capabilities | Gets the list of capabilities for the default virtual assistant. |
create_task | Creates a task with scheduling, memory, search, and customization options. |
scheduled_prompts — Scheduled Prompts
Requires scheduled jobs to be enabled on the chat.
| Tool | Description |
add_scheduled_job | Adds a scheduled job that runs a given prompt on a schedule. |
Note
The underlying toolkit also defines tools to list, update, and delete scheduled jobs, but only add_scheduled_job is registered under this capability.
video_analysis — Video Analysis
| Tool | Description |
analyze_video_tool | Analyzes video to summarize, extract info, and identify key points/timelines. |
extract_video_keyframes | Extracts scene-change keyframes and saves each as an image document. |
video_transcription — Video Transcription
| Tool | Description |
transcribe_video_tool | Verbatim transcript from a video's audio track (or an audio file), no summarization. |
audio_diarization — Audio Diarization
| Tool | Description |
diarize_audio_tool | Transcribes audio with speaker diarization; returns [MM:SS] timestamps + Speaker labels. |
An ephemeral per-turn Daytona shell for code/skill execution.
| Tool | Description |
sandbox_exec | Runs a shell command in an ephemeral per-turn sandbox; state is reused across calls within the same turn. |
Not the same as a type: "sandbox" capability
This internal sandbox capability provides the general-purpose sandbox_exec tool — see Sandbox Execution. It's distinct from a Sandbox capability (type: "sandbox"), which packages a whole automation behind a nested loop.
Direct desktop control where the agent's own model does the looking and clicking.
| Tool | Description |
computer_use | Performs one mouse/keyboard action (click, type, scroll, etc.) on a per-turn desktop sandbox. |
computer_screenshot | Captures the desktop screen, with optional region zoom for small text. |
Not the same as a type: "computer_use" capability
This internal computer_use capability exposes low-level actions the agent's own model drives directly. It's distinct from a Computer Use capability (type: "computer_use"), which runs a nested Claude loop behind a single named tool.
Special-cased capabilities (built per-request)
These can't be pre-registered because they need per-user or per-request state, so the platform builds them at runtime:
memory — Memory
Skipped on temporary chats and when global memory is off. Scoped to the user and group (and per-agent for constitution memories).
| Tool | Description |
search_memory | Semantic vector lookup of saved memories; returns id, type, priority, timestamp, text. |
update_memory | Adds, updates, or deletes a memory (action + text + memory_type + priority and/or memory_id). |
web_search_google_serper — Web Search (Google Serper)
| Tool | Description |
google_serper_results_json | Google search results. Requires SERPER_API_KEY in user/group settings; if missing, the tool is omitted and a warning is logged. |
generic_api_requests — Generic API Requests
| Tool | Description |
requests_get | Performs HTTP GET requests and returns the response. Instantiated fresh per request (not registry-cached). |
Codes handled elsewhere
A few capability codes exist but don't map to discrete tools on this page — they're handled by other subsystems (the agent prompt, plugins, or platform features) rather than the tool registry:
multimodality process_documents obviously_manage web_search_internal
| Code | Display name | Tools |
base | Base Tools | 11 tools (title, notify, push, read URL, hide, query/call/execute, mentions, image, voice) |
base_dev | Base Dev Tools | wait_seconds |
canvas_toolkit | Canvas | 5 canvas tools |
chat_db_edit | Chat DB (Edit) | 6 chatdb tools |
chat_db_read_only | Chat DB (Read Only) | chatdb_list, chatdb_get |
web_search | Web Search | web_search |
web_search_perplexity | Web Search (Perplexity) | perplexity_web_search |
web_search_gemini_deep_research | Web Search (Gemini Deep Research) | gemini_deep_research |
web_search_google_serper | Web Search (Serper) | google_serper_results_json (special) |
subchats_parent / subchats_child | Subchats | create_subchats / report_information_to_parent_chat |
memo | Memo | chat_memo |
goal | Goal | set_chat_goal |
rag_messages | RAG Messages | rag_search_messages |
rag_documents | RAG Documents | rag_search_documents_and_collections |
documents | Documents | 6 document tools |
settings | Settings | edit_user_setting |
tasks | Tasks | get_capabilities, create_task |
scheduled_prompts | Scheduled Prompts | add_scheduled_job |
video_analysis | Video Analysis | analyze_video_tool, extract_video_keyframes |
video_transcription | Video Transcription | transcribe_video_tool |
audio_diarization | Audio Diarization | diarize_audio_tool |
sandbox | Sandbox | sandbox_exec |
computer_use | Computer Use | computer_use, computer_screenshot |
memory | Memory | search_memory, update_memory (special) |
generic_api_requests | Generic API Requests | requests_get (special) |