Skip to main content
Интегрируйте 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 'agent-inbox'

const ListItemsInput = z.object({
    limit: z.number().optional().describe('Максимальное количество возвращаемых элементов'),
    pageToken: z.string().optional().describe('Токен страницы для пагинации'),
})

const InboxId = z.string().describe('ID входящих')

const GetInboxInput = z.object({ inboxId: InboxId })

const CreateInboxInput = z.object({
    username: z.string().optional().describe('Имя пользователя'),
    domain: z.string().optional().describe('Домен'),
    displayName: z.string().optional().describe('Отображаемое имя'),
})

const ListInboxItemsInput = ListItemsInput.extend({
    inboxId: InboxId,
    labels: z.array(z.string()).optional().describe('Фильтровать элементы по меткам'),
    before: z.coerce.date().optional().describe('Фильтровать элементы до даты/времени'),
    after: z.coerce.date().optional().describe('Фильтровать элементы после даты/времени'),
})

const GetThreadInput = GetInboxInput.extend({
    threadId: z.string().describe('ID цепочки'),
})

const MessageId = z.string().describe('ID сообщения')

const BaseMessageInput = z.object({
    inboxId: InboxId,
    text: z.string().optional().describe('Текстовое тело сообщения'),
    html: z.string().optional().describe('HTML тело сообщения'),
    labels: z.array(z.string()).optional().describe('Метки'),
})

const SendMessageInput = BaseMessageInput.extend({
    to: z.union([z.string(), z.array(z.string())]).describe('Адресаты'),
    cc: z
        .union([z.string(), z.array(z.string())])
        .optional()
        .describe('Копия'),
    bcc: z
        .union([z.string(), z.array(z.string())])
        .optional()
        .describe('Скрытая копия'),
    subject: z.string().optional().describe('Тема'),
})

const ReplyToMessageInput = BaseMessageInput.extend({ messageId: MessageId })

const UpdateMessageInput = z.object({
    inboxId: InboxId,
    messageId: MessageId,
    addLabels: z.array(z.string()).optional().describe('Метки для добавления'),
    removeLabels: z.array(z.string()).optional().describe('Метки для удаления'),
})

const listInboxesTool = createTool({
    id: 'list-inboxes',
    description: 'Список входящих',
    inputSchema: ListItemsInput,
    execute: ({ context }) => {
        const client = new AgentInboxClient()
        return client.inboxes.list(context)
    },
})

const createInboxTool = createTool({
    id: 'create-inbox',
    description: 'Создать входящие',
    inputSchema: CreateInboxInput,
    execute: ({ context }) => {
        const client = new AgentInboxClient()
        return client.inboxes.create(context)
    },
})

const deleteInboxTool = createTool({
    id: 'delete-inbox',
    description: 'Удалить входящие',
    inputSchema: GetInboxInput,
    execute: ({ context }) => {
        const client = new AgentInboxClient()
        return client.inboxes.delete(context.inboxId)
    },
})

const listThreadsTool = createTool({
    id: 'list-threads',
    description: 'Список цепочек',
    inputSchema: ListInboxItemsInput,
    execute: ({ context }) => {
        const client = new AgentInboxClient()
        return client.inboxes.threads.list(context.inboxId, context)
    },
})

const getThreadTool = createTool({
    id: 'get-thread',
    description: 'Получить цепочку и её сообщения',
    inputSchema: GetThreadInput,
    execute: ({ context }) => {
        const client = new AgentInboxClient()
        return client.inboxes.threads.get(context.inboxId, context.threadId)
    },
})

const sendMessageTool = createTool({
    id: 'send-message',
    description: 'Отправить сообщение',
    inputSchema: SendMessageInput,
    execute: ({ context }) => {
        const client = new AgentInboxClient()
        return client.inboxes.messages.send(context.inboxId, context)
    },
})

const replyToMessageTool = createTool({
    id: 'reply-to-message',
    description: 'Ответить на сообщение',
    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: 'Обновить сообщение',
    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 — это платформа email-входящих для AI агентов. Она даёт агентам собственные email-ящики, как Gmail для людей. В отличие от других email API, Agent Inbox предназначен как для отправки, так и для получения сообщений, поддерживая двусторонние email-разговоры. Email критичен для идентичности и коммуникации в интернете. Большая часть контекста, используемого людьми в работе, находится в email. Agent Inbox позволяет AI агентам встречать людей там, где они работают, и использовать интернет как люди.

Функции

  1. Программные входящие: Создавайте, управляйте и удаляйте входящие через API
  2. Цепочки и ответы: Облегчайте двусторонние email-разговоры с постоянным релевантным контекстом
  3. Вложения: Отправляйте, получайте и скачивайте вложения, чтобы агенты могли работать с документами
  4. События в реальном времени: Создавайте event-driven агентов и системы с Webhooks и Websockets
  5. Собственные домены: Приватизируйте входящие для вас или ваших клиентов, чтобы автоматизировать клиентскую работу
  6. SDK для языков и фреймворков: Используйте свой предпочитаемый язык и фреймворк

Варианты использования

  1. Обработка входящих: Получайте, сортируйте и обрабатывайте входящие письма
  2. Автоматизация исходящих: Составляйте, планируйте и отправляйте исходящие письма
  3. Присоединение к разговорам: Обращайтесь к агенту напрямую или добавляйте его в копию к существующей цепочке
  4. Идентификация и аутентификация: Агенты могут зарегистрироваться, получить коды 2FA и аутентифицироваться в любом приложении

Вертикали

  1. Операции: Автоматизируйте внутренние рабочие процессы, коммуникацию с поставщиками и координацию между командами
  2. Поддержка: Обрабатывайте запросы клиентов, управление билетами и автоматические ответы в масштабе
  3. Закупки: Оптимизируйте onboarding поставщиков, процессы RFP и управление покупками
  4. Продажи: Автоматизируйте квалификацию лидов, follow-up и кампании охвата клиентов
  5. Рекрутинг: Автоматизируйте outreach кандидатов, планирование интервью и коммуникацию с претендентами
Это лишь несколько выбранных вертикалей, но мы видели, что Agent Inbox эффективен при автоматизации любой email-задачи во всех функциях. Если человек делает это с помощью email, это может быть автоматизировано с помощью Agent Inbox.