Platform skills quick reference

In Chat, type / plus a skill_id (or pick from the list) to load that skill for the current turn. This page remains the tool map.

Trace AI uses skill-based tool gating: only tools listed in loaded skills (plus kernel tools) are callable. The elementary skill is auto-loaded every turn when gating is enabled.

Document information
FieldValue
Canonical URL/docs/07_ai-agents-and-mcp/20_platform_skills_quick_reference
Version (published date)2026-09-13
Tagsai, reference, trace-ai, skills, mcp

Native tool call shape

Trace AI uses native function calling when skills gating is on. The function name is the tool; arguments are flat JSON matching each tool’s schema, plus optional progress_indicator:

{"skill_id":"integrations","progress_indicator":"Loading integrations skill…"}

Do not wrap args in {"action":"…","parameters":{…}} — that legacy inline shape is only for message-content fallback. The runtime unwraps nested parameters when detected, but flat args are preferred.

Kernel tools (always available when gating is on)

ToolPurpose
get_context_resourceFetch a context catalog resource by resource_id
load_platform_skillLoad an official platform skill (skill_id) or job card (composition_id) — infer from the user's goal and SUGGESTED THIS TURN; do not wait for "load the skill"
list_platform_skillsList platform skills (kind?, query?, limit? default 40) as { skills: [{ id, kind, description }] }. Offered when CHAT_DYNAMIC_CONTEXT_CATALOG_ON_DEMAND is on with the master dynamic-context flag. The human tables on this page stay the full map.
list_context_resourcesList data resources (category?, query?, limit? default 40). Offered when CHAT_DYNAMIC_CONTEXT_RESOURCES_ON_DEMAND is on with the master flag. Fetch a row with get_context_resource.
load_tenant_skillLoad a tenant skill from SKILLS/ (when enabled)
ToolExample native arguments
load_platform_skill{"skill_id":"integrations"} or {"composition_id":"process-backed-webapp"}
list_platform_skills{"kind":"domain","query":"webapp","limit":40}
list_context_resources{"category":"database_query","query":"product","limit":40}
load_tenant_skill{"skill_id":"invoice-review"}
get_context_resource{"resource_id":"ctx-entity-information"}

Auto-loaded: elementary

The platform also exposes a native random tool (no extra skill load): it reads OS entropy from /dev/urandom and returns lowercase hex. Use it when ProcessFlow steps or integrations need a true random seed — not Math.random or other pseudo-random helpers. Optional length is the number of bytes to read (default 32, max 4096); the hex string is twice as long.

ToolExample call
entity_search{"query":"Acme","type":"entity_information"}
get_context_resource{"resource_id":"ctx-entity-information"}
list_directory{"dir_path":".","recursive":false}
read_file{"file_path":"docs/notes.md"}
write_file{"file_path":"chat_attachments/summary.md","content_base64":"…","mode":"overwrite"}
file_operation{"operation":"copy","source_path":"a.txt","dest_path":"b.txt"}
diff{"path_a":"a.txt","path_b":"b.txt"}
read_todo_list{}
save_todo_list{"items":[...]}
web_fetch{"url":"https://example.com"}
websearch{"query":"Tealfabric MCP","max_results":5}
get-current-datetime{}
agent_wait{"seconds":30,"user_message":"Waiting for sync…"}
random{"length":32}
request_human_input{"kind":"confirm","prompt":"Delete entity 42?"}

Common pitfalls: entity_search without query fails immediately. For multi-line text, prefer write_file content_base64 (UTF-8); use content only for short single-line or append logs. Yes/no permission before a move, delete, or other side-effect must be request_human_input — never a Markdown “Please confirm…”.

On-demand: platform-safeguards

Load when backup or support escalation is needed (not auto-loaded).

ToolExample call
backup{"keep_backups":30}
open_support_ticket{"tenant_id":"…","user_id":"…","request_type":"Bug Report","query":"…"}

Router: platform-actions

Load when routing to console CRUD is unclear. Does not replace domain skills.

ToolPurpose
load_platform_skillRoute to entities, processes, integrations, etc.
entity_searchCross-domain discovery
get_context_resourceContext catalog
describe_tenant_integrationIntegration shape before execute
execute_tenant_integrationRun an integration (when allowed)
request_human_inputConfirm destructive steps

Job compositions (composition_id)

Source of truth: SKILLS/compositions.json. Pass exactly one of skill_id or composition_id. A composition load unlocks member tools and injects the short job map — not every member SKILL.md. Harness peek (SUGGESTED THIS TURN) is job-composition hints only; elementary/kernel tools are already active. When peek names a specialist slug, use list_subagent_catalog — see Platform specialists.

composition_idWhenLoad (order)Specialist slug
process-backed-webappForm or page that runs a ProcessFlowprocesses, platform-code-generation, webapp-library, webappsplatform-code-specialist
webapp-static-cdnPublic static assets on the tenant CDNwebapps—
webapp-public-downloadControlled public file download (public_docs)processes, webapps, documents—
webapp-authWebApp end-user login / sessionprocesses, platform-code-generation, webapp-library, webappsplatform-code-specialist
process-plus-integrationProcessFlow that calls a tenant integrationprocesses, platform-code-generation, integrationsplatform-code-specialist

Domain skills (load via load_platform_skill)

skill_idUnlocks (summary)Load when
entitieslist/get/describe/create/update/delete_entity, relationships, promote_entity_to_customerEntity CRUD
productsproducts + product categories CRUDProduct catalog
contractslist/get/describe/create/update/delete_contractContracts
integrationslist/get/describe/create/update/delete/test_integration, execute_tenant_integrationConnectors
mattermostCompose Mattermost Blocks, attachments, and interactive buttons; send via execute_tenant_integrationMattermost channel posts
processeslist/get/describe/create/update_process, steps, execute_process, triggersProcessFlow
autonomic-agentsdescribe/list/get/create/update/disable/delete_autonomic_agent, manual run, run inspectionCurrent unattended tenant agents (tenant admin)
managed-browserbrowser_open_target, browser_snapshot, browser_navigate, browser_extract_table, browser_fill, browser_click, browser_select, browser_submit, browser_closeAllowlisted web UI when no integration API exists
subagentscatalog, async delegation, parent-scoped run inspection, cooperative cancellationParallel or asynchronous specialist work from Trace AI. Catalog includes platform specialists
platform-code-generationProcessFlow/WebApp code contracts and read-only validationGenerate ProcessFlow step or WebApp code before mutation
datapoolquery/describe_datapool_*, schema and row CRUDDataPool tables
webappsdescribe/list/get/create/update/publish/unpublish/delete_webapp, versionsPlatform WebApp records (draft create, separate publish)
webapp-libraryread_file, write_file, load_platform_skillAuthor schema-driven page_content (hand off to webapps for create_webapp)
documentsupload_document, move_document, create_document_review, pdf2md_ocr, format_convert, ocr_imageDocuments API and file conversion
userscreate_user, update_user, delete_user (admin; confirm via HITL)Tenant user admin
api-keyscreate_api_key, revoke_api_key (requires CHAT_AGENT_API_KEY_TOOLS_ENABLED=1)API key lifecycle
chat-visualsread_file, write_fileDiagrams / Mermaid and KaTeX ($ / $$) in chat
svg-artwrite_file, read_file, web_fetchSVG illustrations, icons, logos, SMIL animations (tenant-file://)
tenant-skill-authoringlist_directory, read_file, write_file, load_tenant_skillCreate or repair tenant SKILLS/{id}/ packages
model-skill-importweb_fetch, datapool/integrations via extra loads, write_file, load_tenant_skillInstall a Library model skill (playbook) after Prerequisite binding
model-agent-importweb_fetch, load_platform_skill, HITL; create via autonomic-agentsInstall a Library Autonomic Agent as draft
platformslist/get/create/update_platform, update_platform_strategyBusiness platforms
chat-historylist/search/get/archive_chat_historyPast chat sessions
network-mapcreate/update_network_map_node, create_network_map_connectionNetwork map edits
notificationslist_notifications, send_notification, mark_notification_read, delete_notificationIn-app inbox (send does not use an integration)
platform-safeguardsbackup, open_support_ticketTenant snapshot or support escalation

Each domain skill also exposes request_human_input where confirms are required. Full tool lists live in SKILLS/<skill_id>/skill.json in the platform repo.

WebApp create workflow (two skills)

flowchart LR
  A[load webapp-library] --> B[Author page_content]
  B --> C{Review draft?}
  C -->|optional| D[write_file tenant path]
  C --> E[load webapps]
  D --> E
  E --> F[describe_webapp]
  F --> G[create_webapp with webapp_user_id]
  G --> H{Draft OK?}
  H -->|user wants live| I[publish_webapp]
  • create_webapp registers an unpublished platform draft (required). Pass webapp_user_id from describe_webapp.webapp_users (role webapp_user). Never omit it and never use the calling tenant_admin. If webapp_users is empty, ask the tenant admin to create a Webapp user in User Management and do not create yet.
  • publish_webapp is separate when the user wants the WebApp public.
  • Tenant write_file drafts do not replace create_webapp.

Tenant skills

Folders under tenantdata/{tenant_id}/SKILLS/ with SKILL.md and optional skill.json. Author with load_platform_skill({ "skill_id": "tenant-skill-authoring" }). Install from the public Library with model-skill-import (see Model skills library). Run with load_tenant_skill({ "skill_id": "<folder-name>" }) when CHAT_TENANT_SKILLS_ENABLED=1. See Tenant skills user guide.

Typical workflow

flowchart LR
  A[elementary auto-loaded] --> B{Console write?}
  B -->|No| C[entity_search / read_file / websearch]
  B -->|Yes| D[load platform-actions]
  D --> E[load domain skill]
  E --> F[describe_* / list_* / get_*]
  F --> G[request_human_input if risky]
  G --> H[create / update / execute tool]

See also