App Skills Extension Config

The App Skills extension config declares the skills your app offers to AI agents working on a site, such as Aria. Configure a JSON object with a skills array of skill objects. Include between 1 and 100 skills. An app can have one App Skills extension.

Skills build on your App Tools extension: a skill may only reference tools your own app declares there.

For each skill, provide:

NameTypeDescription
slugstringRequired. Identifier of the skill, unique within your app. Agents use it to refer to the skill they chose. Use lowercase words separated by hyphens, for example package-tracking. Max: 64 characters.
displayNamestringThe name shown to users when they browse the site's skills. Min: 2. Max: 200 characters.
descriptionstringRequired. What the skill does and when to use it. Agents decide whether a request fits the skill from this text, so write it clearly. Min: 10. Max: 1,024 characters.
guidelinesstringThe instructions an agent follows once the skill is chosen, in Markdown. Required when activated is true. Max: 20,000 characters. See Writing Skill Guidelines.
toolMethodNamesarray of stringsThe methodName values of the tools in your App Tools extension that this skill may call. Every name must exist there. A skill without tools is allowed, for example a review or checklist skill. Max: 50 names, each 1 to 30 characters.
activatedbooleanWhether the skill is available to agents. Set to true to enable it.
tagsarray of stringsKeywords describing what the skill does, for agents that pick skills by topic. Lowercase words or short phrases. Max: 10, each 1 to 30 characters.
examplesarray of stringsExample user requests the skill handles. The strongest signal an agent has when matching a request to a skill. Max: 5, each 1 to 200 characters.
inputModesarray of stringsMIME media types the skill accepts as input, as in the A2A AgentSkill.inputModes field. For example, text/plain. Leave empty when the skill accepts any input the agent accepts. Max: 10, each 3 to 100 characters.
outputModesarray of stringsMIME media types the skill produces, as in the A2A AgentSkill.outputModes field. For example, application/json. Leave empty when the skill produces whatever the agent produces. Max: 10, each 3 to 100 characters.

Validation on save

Beyond the limits above, the declaration is checked when you save the extension and is rejected in these cases:

RejectionFix
Skill [<slug>] uses tool method [<name>], which is not declared in the app's App Tools extensionAdd the tool to your App Tools extension first, or remove it from toolMethodNames.
Skill [<slug>] is activated but has no guidelinesWrite the guidelines, or set activated to false until they are ready.
Skill [<slug>] guidelines were rejected by the safety check: they may contain instructions that override or manipulate the AI AssistantRephrase the guidelines or the description. See Writing Skill Guidelines for what the check rejects. When several skills fail, the message names the first few and counts the rest.
A second App Skills extension on the same app, rejected as already existingAdd the new skill to your existing App Skills extension instead of creating a second one.

Example

This example declares an activated package-tracking skill that uses the getPackageTracking tool from the app's App Tools extension:

Copy

How skills reach agents

Once your app version is released and installed on a site, the skill appears in that site's List App Skills response and its guidelines are served by Get App Skill. Agents see the declaration of the app version each site is on, so a change to a skill reaches a site when that site moves to the new version.

See also

Last updated: 6 October 2026

Did this help?