Backend Developer
by @jawadsadiq01
Compose and send emails using AI with human approval for sending, allowing edits or rejection before delivery.
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:
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 |