🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Backend Developer

by @jawadsadiq01

Compose and send emails using AI with human approval for sending, allowing edits or rejection before delivery.

Versionv1.0.0
Downloads1,517
TERMINAL
clawhub install langchain-email-agent

πŸ“– About This Skill

EmailAgent README

Overview

The EmailAgent class provides an AI-powered email composition and sending capability using LangChain with OpenAI's GPT model. It includes human-in-the-loop middleware that requires approval before emails are sent.

Configuration

Environment Variables

| Variable | Default | Description | |----------|---------|-------------| | OPENAI_MODEL | gpt-4o-mini | OpenAI model to use |

Usage

import { EmailAgent } from './email.agent';
import { SendEmailDto } from '../dto/send-email.dto';

const agent = new EmailAgent();

const dto: SendEmailDto = { email: 'recipient@example.com', name: 'John Doe', subject: 'Meeting Request', // optional body: 'Initial email content', // optional instructions: 'Keep it formal' // optional };

const result = await agent.sendEmail(dto);

Human-in-the-Loop Middleware

The agent uses humanInTheLoopMiddleware which interrupts execution on the EmailTool before sending emails. This allows for:

  • approve - Send the email as composed
  • edit - Modify the email before sending
  • reject - Cancel the email operation
  • The readEmailTool is excluded from interruption (false), allowing read operations to proceed without approval.

    Parameters

    | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | email | string | Yes | Recipient email address | | name | string | Yes | Recipient name | | subject | string | No | Email subject line | | body | string | No | Initial email body content | | instructions | string | No | AI instructions for composing the email |

    Return Value

    Returns the final message content from the agent as a string.

    πŸ’‘ Examples

    import { EmailAgent } from './email.agent';
    import { SendEmailDto } from '../dto/send-email.dto';

    const agent = new EmailAgent();

    const dto: SendEmailDto = { email: 'recipient@example.com', name: 'John Doe', subject: 'Meeting Request', // optional body: 'Initial email content', // optional instructions: 'Keep it formal' // optional };

    const result = await agent.sendEmail(dto);

    βš™οΈ Configuration

    Environment Variables

    | Variable | Default | Description | |----------|---------|-------------| | OPENAI_MODEL | gpt-4o-mini | OpenAI model to use |