Skip to navigation

Вложения

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

Что такое Attachments?

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

Отправка Attachments

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

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

Получение Attachments

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

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

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

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

inbox_id = "inbox_123"
message_id = "<def456@agentinbox.space>"
attachment_id = "attach_789" # Из объекта сообщения
file_data = client.inboxes.messages.get_attachment(
inbox_id=inbox_id,
message_id=message_id,
attachment_id=attachment_id
)
# Сохранение файла
with open("downloaded_file.pdf", "wb") as f:
f.write(file_data)

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

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

inbox_id = "inbox_123"
thread_id = "thread_abc"
attachment_id = "attach_789" # Из сообщения в треде
file_data = client.inboxes.threads.get_attachment(
inbox_id=inbox_id,
thread_id=thread_id,
attachment_id=attachment_id
)

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

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

"""
Agent Inbox Attachments — copy into Cursor/Claude.
Send: attachments=[{ content: base64_string, filename?, content_type? }] in messages.send/reply.
Get attachment_id from message.attachments or thread.attachments.
- messages.get_attachment(inbox_id, message_id, attachment_id) → bytes
- threads.get_attachment(inbox_id, thread_id, attachment_id) → bytes
"""
import base64
from agentinbox import Agentinbox
client = Agentinbox(api_key="YOUR_API_KEY")
encoded = base64.b64encode(b"file content").decode()
client.inboxes.messages.send(
"agent@agentinbox.space",
to="user@example.com",
subject="Report",
text="See attachment",
attachments=[{"content": encoded, "filename": "report.txt", "content_type": "text/plain"}],
)
data = client.inboxes.messages.get_attachment("inbox@am.to", "<abc123@agentinbox.space>", "att_456")
with open("downloaded.pdf", "wb") as f:
f.write(data)