> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hill90.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Assign skill to agent

> Assigns a skill from the catalog to an agent. Agent must be stopped.
RBAC on scope: container_local — any user (own agents). host_docker/vps_system — admin only.




## OpenAPI

````yaml /openapi.yaml post /agents/{id}/skills
openapi: 3.0.3
info:
  title: Hill90 API
  description: Hill90 platform API — agent management and lifecycle operations.
  version: 0.1.0
servers:
  - url: /
    description: Relative (behind Traefik reverse proxy)
security: []
paths:
  /agents/{id}/skills:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
    post:
      summary: Assign skill to agent
      description: >
        Assigns a skill from the catalog to an agent. Agent must be stopped.

        RBAC on scope: container_local — any user (own agents).
        host_docker/vps_system — admin only.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - skill_id
              properties:
                skill_id:
                  type: string
                  format: uuid
                  description: ID of the skill (tool preset) to assign
      responses:
        '201':
          description: Skill assigned
          content:
            application/json:
              schema:
                type: object
                properties:
                  agent_id:
                    type: string
                    format: uuid
                  skill_id:
                    type: string
                    format: uuid
                  assigned_at:
                    type: string
                    format: date-time
                  assigned_by:
                    type: string
        '400':
          description: Missing skill_id
        '401':
          description: Not authenticated
        '403':
          description: Elevated scope requires admin role
        '404':
          description: Agent or skill not found
        '409':
          description: Agent is running or skill already assigned
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````