> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://agentinbox.space/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://agentinbox.space/_mcp/server.

# 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`**

```typescript title="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.