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
| Field | Value |
|---|---|
| Canonical URL | /docs/07_ai-agents-and-mcp/20_platform_skills_quick_reference |
| Version (published date) | 2026-06-15 |
| Tags | ai, 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)
| Tool | Purpose |
|---|---|
get_context_resource | Fetch a context catalog resource by resource_id |
load_platform_skill | Load an official platform skill (skill_id) — infer from the user's goal; do not wait for "load the skill" |
load_tenant_skill | Load a tenant skill from SKILLS/ (when enabled) |
| Tool | Example 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
| Tool | Example 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).
| Tool | Example 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.
| Tool | Purpose |
|---|---|
load_platform_skill | Route to entities, processes, integrations, etc. |
entity_search | Cross-domain discovery |
get_context_resource | Context catalog |
describe_tenant_integration | Integration shape before execute |
execute_tenant_integration | Run an integration (when allowed) |
request_human_input | Confirm destructive steps |
Domain skills (load via load_platform_skill)
skill_id | Unlocks (summary) | Load when |
|---|---|---|
entities | list/get/describe/create/update/delete_entity, relationships, promote_entity_to_customer | Entity CRUD |
products | products + product categories CRUD | Product catalog |
contracts | list/get/describe/create/update/delete_contract | Contracts |
integrations | list/get/describe/create/update/delete/test_integration, execute_tenant_integration | Connectors |
processes | list/get/describe/create/update_process, steps, execute_process, triggers | ProcessFlow |
datapool | query/describe_datapool_*, schema and row CRUD | DataPool tables |
webapps | describe/list/get/create/update/publish/unpublish/delete_webapp, versions | Platform WebApp records (draft create, separate publish) |
webapp-library | read_file, write_file, load_platform_skill | Author schema-driven page_content (hand off to webapps for create_webapp) |
documents | upload_document, move_document, create_document_review, pdf2md_ocr, format_convert, ocr_image | Documents API and file conversion |
users | create_user, update_user, delete_user (admin; confirm via HITL) | Tenant user admin |
api-keys | create_api_key, revoke_api_key (requires CHAT_AGENT_API_KEY_TOOLS_ENABLED=1) | API key lifecycle |
chat-visuals | read_file, write_file | Diagrams / Mermaid in chat |
platforms | list/get/create/update_platform, update_platform_strategy | Business platforms |
chat-history | list/search/get/archive_chat_history | Past chat sessions |
network-map | create/update_network_map_node, create_network_map_connection | Network map edits |
notifications | list_notifications, mark_notification_read, delete_notification | In-app notifications |
platform-safeguards | backup, open_support_ticket | Tenant 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_webappregisters an unpublished platform draft (required).publish_webappis separate when the user wants the WebApp public.- Tenant
write_filedrafts do not replacecreate_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]