Skip to main content

quick start ai

Drupal AI Quick Start - 15 Minutes to First AI Agent

Time: 15 minutes Difficulty: Beginner Requirements: DDEV installed, GitLab account

Step 1: Install Drupal with AI Modules (5 min)

# Create DDEV project mkdir drupal-ai && cd drupal-ai ddev config --project-type=drupal --php-version=8.3 --database=postgres:16 ddev start # Install Drupal + AI modules ddev composer create drupal/recommended-project ddev composer require drupal/ai:^1.2.5 drupal/ai_agents:^1.2.1 drupal/eca:^2.0 drupal/key:^1.17 ddev drush site:install --account-name=admin --account-pass=admin -y ddev drush en ai,ai_agents,eca,key -y # Launch site ddev launch

Step 2: Configure GitLab AI Gateway (3 min)

# Create GitLab Personal Access Token # https://gitlab.com/-/user_settings/personal_access_tokens # Scopes: api, ai_gateway # Store token in Drupal ddev drush key:create gitlab_ai_gateway \ --key-type=authentication \ --key-provider=config \ --key-input=glpat-YOUR-TOKEN-HERE

Step 3: Enable GitLab AI Provider (2 min)

Admin UI: /admin/config/ai/providers

  1. Enable "GitLab AI Gateway" provider
  2. Select key: gitlab_ai_gateway
  3. Test connection should see " Connected"
  4. Save configuration

Step 4: Create Your First AI Agent (3 min)

Admin UI: /admin/ai/agents/add

Name: content-summarizer Description: Summarizes article content Provider: GitLab AI Gateway Model: claude-sonnet-4 System Prompt: | You are a content summarizer. Create 2-sentence summaries. Tools: - summarize_node (built-in) Save

Step 5: Test the Agent (2 min)

# Via Drush ddev drush ai:agent:execute content-summarizer \ "Summarize this: Drupal is a free and open-source content management system." # Output: # Agent executed successfully # Response: Drupal is a free CMS. It's open-source and widely used.

Or via Admin UI: /admin/ai/agents/content-summarizer/execute

Next Steps

Create ECA Workflow (Auto-Summary)

Admin UI: /admin/config/workflow/eca

  1. Click "Add Model"
  2. Event: "Node Pre-save" (article bundle)
  3. Condition: "Field is empty" (field_summary)
  4. Action: "AI Generate Text"
    • Provider: GitLab AI Gateway
    • Model: claude-sonnet-4
    • Prompt: Summarize: [node:title] - [node:body:summary]
    • Target: field_summary
  5. Save

Test: Create an article Summary auto-generated!

Add More AI Actions

  • Auto Meta Description: Use eca_ai:generate_text with 150-char limit
  • Spam Detection: Use eca_ai:classify on comments
  • Auto Tagging: Use eca_ai:extract_entities on articles

Common Issues

"GitLab token invalid"

# Regenerate token with correct scopes: api, ai_gateway # Update key: ddev drush key:edit gitlab_ai_gateway

"Module not found"

# Clear cache ddev drush cr # Verify installation ddev drush pm:list --filter=ai

Full Example: AI-Powered Article Workflow

# ECA Model: complete-article-workflow events: article_created: plugin: 'node:insert' configuration: bundle: article actions: generate_summary: plugin: 'eca_ai:generate_text' configuration: prompt: "2-sentence summary: [node:body:value]" target: field_summary generate_meta: plugin: 'eca_ai:generate_text' configuration: prompt: "150-char meta: [node:title]" target: field_meta_description extract_tags: plugin: 'eca_ai:extract_entities' configuration: text: '[node:body:value]' entity_types: [topics, keywords] apply_tags: plugin: 'taxonomy:apply_terms' configuration: vocabulary: tags terms: '[ai_entities]' moderate_content: plugin: 'eca_ai:classify' configuration: text: '[node:body:value]' categories: [appropriate, spam, offensive] publish_if_appropriate: plugin: 'node:publish' condition: '[ai_category] == "appropriate"'

Result: Articles get AI-generated summaries, meta descriptions, tags, and moderation automatically!

Resources

  • Architecture: architecture/ai-architecture.md
  • GitLab AI Gateway: integrations/gitlab-ai-gateway-drupal.md
  • ECA AI Actions: integrations/eca-ai-actions-drupal.md
  • OSSA Bridge: integrations/ossa-bridge-drupal.md