Platform skills quick reference

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-06-15
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) — infer from the user's goal; do not wait for "load the skill"
load_tenant_skillLoad a tenant skill from SKILLS/ (when enabled)
ToolExample native arguments
load_platform_skill{"skill_id":"integrations"}
load_tenant_skill{"skill_id":"invoice-review"}
get_context_resource{"resource_id":"ctx-entity-information"}

Auto-loaded: elementary

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…"}
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.

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

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
processeslist/get/describe/create/update_process, steps, execute_process, triggersProcessFlow
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 in chat
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, mark_notification_read, delete_notificationIn-app notifications
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 inline page_content]
  G --> H{Draft OK?}
  H -->|user wants live| I[publish_webapp]
  • create_webapp registers an unpublished platform draft (required).
  • 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.json + SKILL.md. Loaded with load_tenant_skill({ "skill_id": "<folder-name>" }) when CHAT_TENANT_SKILLS_ENABLED=1.

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