← Vytvářejte agenty na Cloudflare / agents / communication-channels
E-mail je komunikační kanál pro agenty, kteří potřebují komunikovat s uživateli nebo systémy prostřednictvím schránek namísto chatovacích rozhraní. Agenti mohou odesílat odchozí e-maily, přijímat příchozí e-maily, směrovat odpovědi zpět do existující relace a používat obsah e-mailu jako součást workflow agenta.
Používejte e-mail, pokud chcete, aby agent:
- Odesílejte oznámení, souhrny, potvrzení nebo navazující zprávy.
- Zpracujte příchozí zprávy přes Cloudflare Email Service.
- Pokračujte v konverzaci od odpovědi.
- Směrujte podporu, prodej nebo provozní pracovní postupy přes agenta.
Jak to funguje
Odchozí e-mail používá send_email vazbu ve svém Workeru. Příchozí e-maily využívají směrovací pravidlo Email Service, které zprávy odesílá do Workeru, kde agent může před rozhodnutím o odpovědi zpracovat odesílatele, příjemce, hlavičky a tělo zprávy.
Pro zpracování odpovědí uveďte stabilní identifikátor v adrese pro odpověď, metadatech zprávy nebo hlavičkách, aby Worker mohl navazující zprávy nasměrovat na správnou instanci agenta.
Základní vzor
Implementujte onEmail() ke zpracování příchozí pošty a použijte sendEmail() nebo replyToEmail() když agent potřebuje odeslat odpověď.
import { Agent, callable, routeAgentEmail } from "agents";
import { createAddressBasedEmailResolver } from "agents/email";
export class EmailAgent extends Agent {
@callable()
async sendWelcomeEmail(to) {
await this.sendEmail({
binding: this.env.EMAIL,
to,
from: "[email protected]",
replyTo: "[email protected]",
subject: "Welcome",
text: "Thanks for signing up. Reply to this email if you need help.",
});
}
async onEmail(email) {
await this.replyToEmail(email, {
fromName: "Support Agent",
body: "Thanks for your email. We received it.",
});
}
}
export default {
async email(message, env) {
await routeAgentEmail(message, env, {
resolver: createAddressBasedEmailResolver("EmailAgent"),
});
},
};import { Agent, callable, routeAgentEmail } from "agents";
import { createAddressBasedEmailResolver, type AgentEmail } from "agents/email";
export class EmailAgent extends Agent {
@callable()
async sendWelcomeEmail(to: string) {
await this.sendEmail({
binding: this.env.EMAIL,
to,
from: "[email protected]",
replyTo: "[email protected]",
subject: "Welcome",
text: "Thanks for signing up. Reply to this email if you need help.",
});
}
async onEmail(email: AgentEmail) {
await this.replyToEmail(email, {
fromName: "Support Agent",
body: "Thanks for your email. We received it.",
});
}
}
export default {
async email(message, env) {
await routeAgentEmail(message, env, {
resolver: createAddressBasedEmailResolver("EmailAgent"),
});
},
} satisfies ExportedHandler<Env>;Konfigurace
Přidejte send_email vazbu pro odchozí e-maily a poté nakonfigurujte směrovací pravidlo Email Service pro odesílání příchozí pošty do vašeho Workeru.
{
"$schema": "./node_modules/wrangler/config-schema.json",
"send_email": [
{
"name": "EMAIL",
"remote": true
}
]
}[[send_email]]
name = "EMAIL"
remote = true remote = true možnost umožňuje volat skutečné Email Service API během lokálního vývoje s wrangler dev.
Sestavte e-mailového agenta
Kompletní postup včetně nastavení domény, bindings, směrování příchozí pošty a zabezpečených odpovědí najdete v příkladu e-mailového agenta.