Вложения

Отправка и приём файлов агентами.

Что такое Attachments?

Attachment — файл, связанный с Message. Это может быть счёт PDF, отчёт CSV или изображение (хотя в первом письме изображения лучше не слать — подробнее в разделе доставляемости). Агенты могут и отправлять Attachments в исходящих Messages, и обрабатывать вложения во входящих Messages.

Отправка Attachments

Чтобы отправить файл, передайте массив Attachments при отправке Message. Каждый элемент — один файл; обязательно поле content.

  • content (обязательно): содержимое файла в Base64.
  • filename (необязательно): имя файла (например invoice.pdf).
  • content_type (необязательно): MIME-тип (например application/pdf).
1import base64
2
3# Простой текстовый файл для примера
4
5file_content = "This is the content of our report."
6
7# Содержимое нужно закодировать в Base64 перед отправкой
8
9encoded_content = base64.b64encode(file_content.encode()).decode()
10
11sent_message = client.inboxes.messages.send(
12inbox_id="reports@agentinbox.space",
13to=["supervisor@example.com"],
14subject="Q4 Financial Report",
15text="Please see the attached report.",
16attachments=[{
17"content": encoded_content,
18"filename": "Q4-report.txt",
19"content_type": "text/plain"
20}]
21)

Получение Attachments

Нужен attachment_id из массива attachments объекта Message. По ID можно скачать файл.

Ответ API при получении вложения — сырые байты файла; их можно сохранить на диск или обработать в памяти.

Из конкретного Message

Если известны inbox, сообщение и вложение — запрос напрямую.

1inbox_id = "inbox_123"
2message_id = "<def456@agentinbox.space>"
3attachment_id = "attach_789" # Из объекта сообщения
4
5file_data = client.inboxes.messages.get_attachment(
6inbox_id=inbox_id,
7message_id=message_id,
8attachment_id=attachment_id
9)
10
11# Сохранение файла
12
13with open("downloaded_file.pdf", "wb") as f:
14f.write(file_data)

Из конкретного Thread

То же, если известны inbox, тред и вложение — удобно для длинных переписок.

1inbox_id = "inbox_123"
2thread_id = "thread_abc"
3attachment_id = "attach_789" # Из сообщения в треде
4
5file_data = client.inboxes.threads.get_attachment(
6inbox_id=inbox_id,
7thread_id=thread_id,
8attachment_id=attachment_id
9)

Скопировать в Cursor / Claude

Скопируйте один из блоков ниже для полного контекста по вложениям.

1"""
2Agent Inbox Attachments — copy into Cursor/Claude.
3
4Send: attachments=[{ content: base64_string, filename?, content_type? }] in messages.send/reply.
5Get attachment_id from message.attachments or thread.attachments.
6
7- messages.get_attachment(inbox_id, message_id, attachment_id) → bytes
8- threads.get_attachment(inbox_id, thread_id, attachment_id) → bytes
9"""
10import base64
11from agentinbox import Agentinbox
12
13client = Agentinbox(api_key="YOUR_API_KEY")
14
15encoded = base64.b64encode(b"file content").decode()
16client.inboxes.messages.send(
17 "agent@agentinbox.space",
18 to="user@example.com",
19 subject="Report",
20 text="See attachment",
21 attachments=[{"content": encoded, "filename": "report.txt", "content_type": "text/plain"}],
22)
23
24data = client.inboxes.messages.get_attachment("inbox@am.to", "<abc123@agentinbox.space>", "att_456")
25with open("downloaded.pdf", "wb") as f:
26 f.write(data)