EmailVerify LogoEmailVerify

Agent Skills

Email checker agent skills for AI. Verify emails in AI workflows and automation pipelines.

Agent Skills sind vorgefertigte Funktionen, die KI-Agenten hinzugefügt werden können, um ihre Funktionalität zu erweitern. EmailVerify bietet E-Mail-Verifizierungs-Skills für beliebte KI-Agent-Frameworks.

Was sind Agent Skills?

Agent Skills sind modulare, wiederverwendbare Komponenten, die KI-Agenten spezifische Fähigkeiten verleihen:

  • Plug-and-play: Fügen Sie Skills zu Ihrem Agenten hinzu, ohne Verifizierungslogik zu schreiben
  • Standardisierte Schnittstelle: Funktioniert über verschiedene Agent-Frameworks hinweg
  • Best Practices integriert: Fehlerbehandlung, Rate Limiting und Caching enthalten

Unterstützte Agent-Frameworks

FrameworkSkill-TypStatus
Claude Agent SDKToolUnterstützt
AutoGPTPluginUnterstützt
LangChain AgentsToolUnterstützt
CrewAIToolUnterstützt
SuperAGIToolDemnächst

Claude Agent SDK

Das Claude Agent SDK macht es einfach, benutzerdefinierte KI-Agenten zu erstellen. Fügen Sie E-Mail-Verifizierung als Tool hinzu:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const tools: Anthropic.Tool[] = [
  {
    name: "verify_email",
    description: `Überprüfe, ob eine E-Mail-Adresse gültig und zustellbar ist.

Rückgabewerte:
- status: "valid", "invalid" oder "unknown"
- deliverable: ob die E-Mail Nachrichten empfangen kann
- disposable: ob es ein temporärer E-Mail-Dienst ist
- role: ob es eine rollenbasierte Adresse ist (info@, support@)
- score: Konfidenzwert von 0 bis 1`,
    input_schema: {
      type: "object",
      properties: {
        email: {
          type: "string",
          description: "Die zu verifizierende E-Mail-Adresse",
        },
      },
      required: ["email"],
    },
  },
];

async function verifyEmail(email: string) {
  const response = await fetch("https://api.emailverify.ai/v1/verify", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.EMAILVERIFY_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ email }),
  });
  return response.json();
}

async function processToolCall(
  toolName: string,
  toolInput: Record<string, string>
) {
  if (toolName === "verify_email") {
    return await verifyEmail(toolInput.email);
  }
  throw new Error(`Unknown tool: ${toolName}`);
}

async function agentLoop(userMessage: string) {
  const messages: Anthropic.MessageParam[] = [
    { role: "user", content: userMessage },
  ];

  while (true) {
    const response = await client.messages.create({
      model: "claude-sonnet-4-20250514",
      max_tokens: 4096,
      tools,
      messages,
    });

    // Check if we need to process tool calls
    if (response.stop_reason === "tool_use") {
      const toolUseBlocks = response.content.filter(
        (block): block is Anthropic.ToolUseBlock => block.type === "tool_use"
      );

      const toolResults: Anthropic.ToolResultBlockParam[] = [];

      for (const toolUse of toolUseBlocks) {
        const result = await processToolCall(
          toolUse.name,
          toolUse.input as Record<string, string>
        );
        toolResults.push({
          type: "tool_result",
          tool_use_id: toolUse.id,
          content: JSON.stringify(result),
        });
      }

      messages.push({ role: "assistant", content: response.content });
      messages.push({ role: "user", content: toolResults });
    } else {
      // Agent is done
      const textBlock = response.content.find(
        (block): block is Anthropic.TextBlock => block.type === "text"
      );
      return textBlock?.text;
    }
  }
}

// Nutzung
const result = await agentLoop(
  "Ich habe eine Liste von E-Mails zu verifizieren: john@google.com, test@mailinator.com, support@microsoft.com. Prüfe jede einzelne und sage mir, welche sicher zu verwenden sind."
);
console.log(result);

CrewAI-Integration

Fügen Sie E-Mail-Verifizierung zu Ihren CrewAI-Agenten hinzu:

from crewai import Agent, Task, Crew
from crewai_tools import tool
import requests
import os

@tool("Email Verification Tool")
def verify_email(email: str) -> str:
    """Überprüfe, ob eine E-Mail-Adresse gültig und zustellbar ist.

    Args:
        email: Die zu verifizierende E-Mail-Adresse

    Returns:
        Verifizierungsergebnis mit Status, Zustellbarkeit und Risiko-Flags
    """
    response = requests.post(
        'https://api.emailverify.ai/v1/verify',
        headers={
            'Authorization': f'Bearer {os.environ["EMAILVERIFY_API_KEY"]}',
            'Content-Type': 'application/json',
        },
        json={'email': email}
    )
    result = response.json()
    return f"Email: {email}, Status: {result['status']}, Score: {result['score']}"

# Erstelle einen Agenten mit der Verifizierungs-Fähigkeit
data_quality_agent = Agent(
    role='Datenqualitäts-Spezialist',
    goal='Sicherstellen, dass alle E-Mail-Adressen in der Datenbank gültig und zustellbar sind',
    backstory='Experte für Datenvalidierung und E-Mail-Zustellbarkeit',
    tools=[verify_email],
    verbose=True
)

# Erstelle eine Aufgabe
verification_task = Task(
    description='Verifiziere die folgenden E-Mail-Adressen und berichte, welche ungültig sind: {emails}',
    expected_output='Ein Bericht aller E-Mails mit ihrem Verifizierungsstatus',
    agent=data_quality_agent
)

# Führe die Crew aus
crew = Crew(
    agents=[data_quality_agent],
    tasks=[verification_task]
)

result = crew.kickoff(inputs={
    'emails': 'john@google.com, fake@invalid.xyz, test@mailinator.com'
})
print(result)

AutoGPT Plugin

Erstellen Sie ein AutoGPT-Plugin für E-Mail-Verifizierung:

# autogpt_plugins/emailverify/__init__.py
from typing import Any, Dict, List, Optional, Tuple, TypeVar
import requests
import os

PromptGenerator = TypeVar("PromptGenerator")

class EmailVerifyPlugin:
    def __init__(self):
        self.api_key = os.environ.get("EMAILVERIFY_API_KEY")

    @staticmethod
    def get_name() -> str:
        return "EmailVerify E-Mail-Verifizierung"

    def can_handle_post_prompt(self) -> bool:
        return True

    def post_prompt(self, prompt: PromptGenerator) -> PromptGenerator:
        prompt.add_command(
            "verify_email",
            "Überprüfe, ob eine E-Mail gültig ist",
            {"email": "<email_address>"},
            self.verify_email
        )
        return prompt

    def verify_email(self, email: str) -> str:
        response = requests.post(
            'https://api.emailverify.ai/v1/verify',
            headers={
                'Authorization': f'Bearer {self.api_key}',
                'Content-Type': 'application/json',
            },
            json={'email': email}
        )
        result = response.json()

        if result['status'] == 'valid':
            return f"✅ {email} ist gültig (Score: {result['score']})"
        elif result['status'] == 'invalid':
            return f"❌ {email} ist ungültig"
        else:
            return f"⚠️ {email} Status unbekannt"

Best Practices

1. Skill-Beschreibung

Schreiben Sie klare Beschreibungen, damit der Agent weiß, wann der Skill verwendet werden soll:

description: `Überprüfe, ob eine E-Mail-Adresse gültig und zustellbar ist.

Verwende diesen Skill, wenn:
- Benutzer bittet, eine E-Mail-Adresse zu prüfen
- Kontaktinformationen vor dem Speichern validiert werden
- E-Mail-Listen bereinigt werden
- Geprüft wird, ob eine E-Mail Wegwerf oder rollenbasiert ist

Rückgabewerte: Status, Zustellbarkeit, Wegwerf-Flag, Rollen-Flag, Konfidenzwert`

2. Fehlerbehandlung

Bauen Sie robuste Fehlerbehandlung in Ihren Skill ein:

@tool("E-Mail-Verifizierung")
def verify_email(email: str) -> str:
    try:
        response = requests.post(
            'https://api.emailverify.ai/v1/verify',
            headers={
                'Authorization': f'Bearer {os.environ["EMAILVERIFY_API_KEY"]}',
                'Content-Type': 'application/json',
            },
            json={'email': email},
            timeout=30
        )

        if response.status_code == 429:
            return "Rate Limit überschritten. Bitte versuchen Sie es später erneut."

        response.raise_for_status()
        return response.json()

    except requests.exceptions.Timeout:
        return "Verifizierung hat Zeitüberschreitung. Bitte versuchen Sie es erneut."
    except Exception as e:
        return f"Verifizierung fehlgeschlagen: {str(e)}"

3. Batch-Operationen

Für mehrere E-Mails verwenden Sie den Bulk-Endpunkt:

const verifyBulkSkill = {
  name: "verify_emails_bulk",
  description: "Mehrere E-Mail-Adressen auf einmal verifizieren. Effizienter für Listen.",
  input_schema: {
    type: "object",
    properties: {
      emails: {
        type: "array",
        items: { type: "string" },
        description: "Array von zu verifizierenden E-Mails (max 100)",
      },
    },
    required: ["emails"],
  },
};

Nächste Schritte

On this page