Skip to main content
Every kind starts in the same place: open Agent settings and click Add skill under Skills. The panel’s filters are its own labels: All, Connectors (API and MCP connectors), Skills (Markdown skills together with the built-in actions the runtime ships with; the built-ins carry a Powered by Xpander badge) and Code (custom actions). A Scope filter (All, Organization, Mine) splits the library into what is shared with you and what you created. Custom skill at the bottom of the panel opens a menu with Skill, Code, MCP Connector and API Connector. Who may add or manage skills at all is set per user group under Settings > User groups with the Add skills and Manage skills switches.
Agent settings panel with a Skills section holding Core Skills and an Add skill link, then Access, Channel, Prompt and Advanced rows

Agent settings: Add skill sits under Skills, above Access, Channels and the prompt.

Add skill panel with filters All, Connectors, Skills, Code and scope All, Organization, Mine; the Custom skill menu is open showing Skill, Code, MCP Connector and API Connector

The Add skill panel: the All, Connectors, Skills and Code filters, the Scope filter, and the Custom skill menu with Skill, Code, MCP Connector and API Connector.

From the catalog

  1. In Add skill, choose the Connectors filter and search for the system.
  2. Select it. The connect dialog is titled Connect followed by the skill name. Connection name is prefilled with your email and the skill name. Access is Personal (your own account, so the agent acts with your permissions where the system allows) or Organization (one shared account).
  3. Authenticate the way the skill requires: Sign in with the vendor for OAuth, or a key. With Authentication on API key, the Type list decides how the key travels: Authorization header, Basic, Bearer, In-URL, Custom header or API key (sent as ApiKey <key>). Paste the key under API key. Server URL overrides the base URL this connection sends requests to; empty means the address from the skill’s spec. Custom headers adds fixed headers to every call. Click Connect. xpander stores the credential and injects it at call time; the agent never sees it.
  4. The skill panel lists the actions by group. Enable only the groups the agent needs, and mark the actions that should wait for a named person under These actions need approval.
Connect dialog with a prefilled Connection name, Access set to Personal, Authentication set to API key, Type set to Authorization header, and API key, Server URL and Custom headers fields above a Connect button

The connect dialog of an API connector: Connection name, Access, Authentication, the Type list, API key, Server URL and Custom headers. Shown with sample data.

Each skill page in this section carries the HTTP API connector badge, the address the calls go to, the credential they carry, and the actions.

From your own OpenAPI spec

  1. At the bottom of Add skill choose Custom skill, then API Connector. The dialog that opens is titled Create connector.
  2. Fill in Name and Description. Under Authentication pick what the API expects: API key in a header (then Header name, the header the key is sent in when someone connects), Bearer token or No authentication.
  3. Upload the spec under OpenAPI spec. The dialog reads it at once and reports the spec’s title and how many operations it found. Operations call the URL in the spec’s servers field; a per-connection server override is possible at connect time.
  4. Create it. The dialog shows the pipeline as it runs: Creating the connector, Starting AI enrichment, Generating the enriched spec, Activating in the catalog, Waiting for ready. Generation runs in the background, so closing the dialog is safe. When no LLM provider is configured for the generator, the spec is ingested as-is with no enrichment.
  5. Connect it like a catalog skill.
Create connector dialog with Name, Description, Authentication set to API key in a header, a Header name field, and an uploaded OpenAPI spec reporting the operations found

Create connector: name, description, the authentication the API expects with its header name, and the uploaded OpenAPI spec with the operations it found. Shown with sample data.

The enrichment steps call the LLM provider the install chose for the openapi-spec-generator service at install time: Bedrock when the install has Bedrock configured, otherwise OpenAI when the installer ran with --openai-key. With OpenAI the service dials api.openai.com directly, so the pods need that egress. A step that fails leaves the API connector at status faulty with no operations, and its row offers Retry. One failure seen on the current build: the tags step ends with 400 Invalid schema for response_format 'TagGroups' from the provider. Retry repeats the same pipeline, so it fails the same way until the cause is fixed; read the openapi-spec-generator pod log first. The provider choice and the bucket the generator needs are on AI Skill Generation.Do not connect an API connector while it is faulty. The connection is accepted, and every call to that agent then fails with 500 Failed to build agent details until the connection is gone. The app cannot remove that connection; the recovery is an operator step on Air-Gapped troubleshooting.Later, upload a new spec version from the skill’s row; it preloads the current auth method. Deleting the skill says which agents lose it. An API connector you create exists only in your installation.

What is recorded

Whatever the kind, the task record shows each skill call an agent made, with its parameters and result, under the person who asked. Settings > Audit logs records Skill Created and Skill Added events with the person who did it, and a skill’s row shows its version and who provided it, so an agent’s skills list reads as a bill of materials.