EmailVerify LogoEmailVerify

Agent Skills

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

Agent Skills zijn voorgebouwde mogelijkheden die kunnen worden toegevoegd aan AI-agents om hun functionaliteit uit te breiden. EmailVerify biedt e-mailverificatie skills voor populaire AI-agent frameworks.

Wat zijn Agent Skills?

Agent Skills zijn modulaire, herbruikbare componenten die AI-agents specifieke mogelijkheden geven:

  • Plug-and-play: Voeg skills toe aan uw agent zonder verificatielogica te schrijven
  • Gestandaardiseerde interface: Werkt over verschillende agent frameworks
  • Best practices ingebouwd: Foutafhandeling, rate limiting en caching inbegrepen

Ondersteunde Agent Frameworks

FrameworkSkill TypeStatus
Claude Agent SDKToolOndersteund
AutoGPTPluginOndersteund
LangChain AgentsToolOndersteund
CrewAIToolOndersteund
SuperAGIToolBinnenkort

Claude Agent SDK

De Claude Agent SDK maakt het eenvoudig om aangepaste AI-agents te bouwen. Voeg e-mailverificatie toe als tool:

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

const client = new Anthropic();

const tools: Anthropic.Tool[] = [
  {
    name: "verify_email",
    description: `Verify if an email address is valid and deliverable.

Returns:
- status: "valid", "invalid", or "unknown"
- deliverable: whether the email can receive messages
- disposable: whether it's a temporary email service
- role: whether it's a role-based address (info@, support@)
- score: confidence score from 0 to 1`,
    input_schema: {
      type: "object",
      properties: {
        email: {
          type: "string",
          description: "The email address to verify",
        },
      },
      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;
    }
  }
}

// Usage
const result = await agentLoop(
  "I have a list of emails to verify: john@google.com, test@mailinator.com, support@microsoft.com. Check each one and tell me which are safe to use."
);
console.log(result);

CrewAI-integratie

Voeg e-mailverificatie toe aan uw CrewAI-agents:

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:
    """Verify if an email address is valid and deliverable.

    Args:
        email: The email address to verify

    Returns:
        Verification result with status, deliverability, and risk 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']}"

# Create an agent with the verification skill
data_quality_agent = Agent(
    role='Data Quality Specialist',
    goal='Ensure all email addresses in the database are valid and deliverable',
    backstory='Expert in data validation and email deliverability',
    tools=[verify_email],
    verbose=True
)

# Create a task
verification_task = Task(
    description='Verify the following email addresses and report which ones are invalid: {emails}',
    expected_output='A report of all emails with their verification status',
    agent=data_quality_agent
)

# Run the crew
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

Maak een AutoGPT plugin voor e-mailverificatie:

# 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 Email Verification"

    def can_handle_post_prompt(self) -> bool:
        return True

    def post_prompt(self, prompt: PromptGenerator) -> PromptGenerator:
        prompt.add_command(
            "verify_email",
            "Verify if an email is valid",
            {"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} is valid (score: {result['score']})"
        elif result['status'] == 'invalid':
            return f"❌ {email} is invalid"
        else:
            return f"⚠️ {email} status unknown"

Best Practices

1. Skill Beschrijving

Schrijf duidelijke beschrijvingen zodat de agent weet wanneer de skill te gebruiken:

description: `Verify if an email address is valid and deliverable.

Use this skill when:
- User asks to check an email address
- Validating contact information before saving
- Cleaning email lists
- Checking if an email is disposable or role-based

Returns: status, deliverability, disposable flag, role flag, confidence score`

2. Foutafhandeling

Bouw robuuste foutafhandeling in uw skill:

@tool("Email Verification")
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 exceeded. Please try again later."

        response.raise_for_status()
        return response.json()

    except requests.exceptions.Timeout:
        return "Verification timed out. Please try again."
    except Exception as e:
        return f"Verification failed: {str(e)}"

3. Batch-operaties

Voor meerdere e-mails, gebruik het bulk endpoint:

const verifyBulkSkill = {
  name: "verify_emails_bulk",
  description: "Verify multiple email addresses at once. More efficient for lists.",
  input_schema: {
    type: "object",
    properties: {
      emails: {
        type: "array",
        items: { type: "string" },
        description: "Array of emails to verify (max 100)",
      },
    },
    required: ["emails"],
  },
};

Volgende Stappen

On this page