Skip to navigation

Replit

Интеграция Agent Inbox с приложениями и агентами на Replit

Начало работы

Replit — облачная среда для приложений и агентов со встроенной IDE, AI-ассистентом и инфраструктурой деплоя.

Agent Inbox в Replit подключён как интеграция-«коннектор»: ваши приложения и агенты на Replit могут использовать его напрямую.

Настройка

Откройте вкладку Integrations в конструкторе Replit. Найдите Agent Inbox и нажмите Connect / Sign in. Вставьте API-ключ Agent Inbox из консоли Agent Inbox. Готово.

Как это устроено

Replit использует Mastra — TypeScript-фреймворк для агентов. При создании нового приложения или агента Replit генерирует набор Mastra-инструментов для API Agent Inbox с учётом сценария и требований.

Ниже — набор готовых инструментов, которые Replit может использовать из коробки для типовых задач.

Инструменты

TypeScript
import { createTool } from '@mastra/core/tools'
import { z } from 'zod'
import { AgentinboxClient } from 'agentinbox'
const ListItemsInput = z.object({
limit: z.number().optional().describe('Max number of items to return'),
pageToken: z.string().optional().describe('Pagination page token'),
})
const InboxId = z.string().describe('ID of inbox')
const GetInboxInput = z.object({ inboxId: InboxId })
const CreateInboxInput = z.object({
username: z.string().optional().describe('Username'),
domain: z.string().optional().describe('Domain'),
displayName: z.string().optional().describe('Display name'),
})
const ListInboxItemsInput = ListItemsInput.extend({
inboxId: InboxId,
labels: z.array(z.string()).optional().describe('Filter items with labels'),
before: z.coerce.date().optional().describe('Filter items before datetime'),
after: z.coerce.date().optional().describe('Filter items after datetime'),
})
const GetThreadInput = GetInboxInput.extend({
threadId: z.string().describe('ID of thread'),
})
const MessageId = z.string().describe('ID of message')
const BaseMessageInput = z.object({
inboxId: InboxId,
text: z.string().optional().describe('Plain text body'),
html: z.string().optional().describe('HTML body'),
labels: z.array(z.string()).optional().describe('Labels'),
})
const SendMessageInput = BaseMessageInput.extend({
to: z.union([z.string(), z.array(z.string())]).describe('To recipients'),
cc: z
.union([z.string(), z.array(z.string())])
.optional()
.describe('CC recipients'),
bcc: z
.union([z.string(), z.array(z.string())])
.optional()
.describe('BCC recipients'),
subject: z.string().optional().describe('Subject'),
})
const ReplyToMessageInput = BaseMessageInput.extend({ messageId: MessageId })
const UpdateMessageInput = z.object({
inboxId: InboxId,
messageId: MessageId,
addLabels: z.array(z.string()).optional().describe('Labels to add'),
removeLabels: z.array(z.string()).optional().describe('Labels to remove'),
})
const listInboxesTool = createTool({
id: 'list-inboxes',
description: 'List inboxes',
inputSchema: ListItemsInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.list(context)
},
})
const createInboxTool = createTool({
id: 'create-inbox',
description: 'Create inbox',
inputSchema: CreateInboxInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.create(context)
},
})
const deleteInboxTool = createTool({
id: 'delete-inbox',
description: 'Delete inbox',
inputSchema: GetInboxInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.delete(context.inboxId)
},
})
const listThreadsTool = createTool({
id: 'list-threads',
description: 'List threads',
inputSchema: ListInboxItemsInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.threads.list(context.inboxId, context)
},
})
const getThreadTool = createTool({
id: 'get-thread',
description: 'Get thread and its messages',
inputSchema: GetThreadInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.threads.get(context.inboxId, context.threadId)
},
})
const sendMessageTool = createTool({
id: 'send-message',
description: 'Send message',
inputSchema: SendMessageInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.messages.send(context.inboxId, context)
},
})
const replyToMessageTool = createTool({
id: 'reply-to-message',
description: 'Reply to message',
inputSchema: ReplyToMessageInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.messages.reply(context.inboxId, context.messageId, context)
},
})
const updateMessageTool = createTool({
id: 'update-message',
description: 'Update message',
inputSchema: UpdateMessageInput,
execute: ({ context }) => {
const client = new AgentinboxClient()
return client.inboxes.messages.update(context.inboxId, context.messageId, context)
},
})
export const tools = {
listInboxesTool,
createInboxTool,
deleteInboxTool,
listThreadsTool,
getThreadTool,
sendMessageTool,
replyToMessageTool,
updateMessageTool,
}

Об Agent Inbox

Agent Inbox — API почтовых ящиков для AI-агентов: у агентов свои ящики, по смыслу как Gmail для людей. В отличие от многих почтовых API, Agent Inbox заточен и на отправку, и на приём — полноценная двусторонняя переписка.

Почта — основа идентичности и коммуникации в интернете; много рабочего контекста живёт в письмах. Agent Inbox позволяет агентам встречать людей в привычной среде и пользоваться сетью так же, как люди.

Возможности

  1. Программируемые ящики: создание, управление и удаление через API
  2. Треды и ответы: двусторонняя переписка с устойчивым и релевантным контекстом
  3. Вложения: отправка, приём и скачивание — агенты работают с документами
  4. События в реальном времени: событийные агенты и системы на вебхуках и WebSocket
  5. Свои домены: white-label для вас или клиентов — клиентская коммуникация под вашим брендом
  6. SDK под язык и фреймворк: выбирайте удобный стек

Сценарии

  1. Входящие: приём, сортировка и обработка входящей почты
  2. Исходящие: черновики, планирование и отправка
  3. Участие в переписке: прямой адрес агента или копия в существующем треде
  4. Идентификация и вход: регистрация, коды 2FA, вход в любые сервисы по почте

Отрасли

  1. Операции: внутренние процессы, вендоры, кросс-командная координация
  2. Поддержка: обращения, тикеты, масштабируемые автоответы
  3. Закупки: онбординг вендоров, RFP, заказы
  4. Продажи: квалификация лидов, фоллоу-апы, кампании
  5. Рекрутинг: рассылки кандидатам, слоты интервью, коммуникация с соискателями

Это лишь часть примеров: Agent Inbox подходит для автоматизации любых почтовых задач. Если человек делает это по почте — это можно автоматизировать через Agent Inbox.