Agent Skills
Email checker agent skills for AI. Verify emails in AI workflows and automation pipelines.
Habilidades de Agente são capacidades pré-construídas que podem ser adicionadas a agentes de IA para estender sua funcionalidade. O EmailVerify fornece habilidades de verificação de e-mail para frameworks de agentes de IA populares.
O Que São Habilidades de Agente?
Habilidades de Agente são componentes modulares e reutilizáveis que dão aos agentes de IA capacidades específicas:
- Plug-and-play: Adicione habilidades ao seu agente sem escrever lógica de verificação
- Interface padronizada: Funciona em diferentes frameworks de agentes
- Melhores práticas integradas: Tratamento de erros, limitação de taxa e cache incluídos
Frameworks de Agentes Suportados
| Framework | Tipo de Habilidade | Status |
|---|---|---|
| Claude Agent SDK | Ferramenta | Suportado |
| AutoGPT | Plugin | Suportado |
| LangChain Agents | Ferramenta | Suportado |
| CrewAI | Ferramenta | Suportado |
| SuperAGI | Ferramenta | Em Breve |
Claude Agent SDK
O Claude Agent SDK facilita a construção de agentes de IA personalizados. Adicione verificação de e-mail como uma ferramenta:
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);Integração com CrewAI
Adicione verificação de e-mail aos seus agentes CrewAI:
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)Plugin AutoGPT
Crie um plugin AutoGPT para verificação de e-mail:
# 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"Melhores Práticas
1. Descrição da Habilidade
Escreva descrições claras para que o agente saiba quando usar a habilidade:
description: `Verifica se um endereço de e-mail é válido e entregável.
Use esta habilidade quando:
- Usuário pedir para verificar um endereço de e-mail
- Validar informações de contato antes de salvar
- Limpar listas de e-mail
- Verificar se um e-mail é descartável ou baseado em função
Retorna: status, entregabilidade, flag descartável, flag de função, pontuação de confiança`2. Tratamento de Erros
Construa tratamento de erros robusto em sua habilidade:
@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. Operações em Lote
Para múltiplos e-mails, use o endpoint em massa:
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"],
},
};