For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
info@patternautomation.com
ДокументацияБаза знанийЖурнал измененийСправочник API
ДокументацияБаза знанийЖурнал измененийСправочник API
    • База знаний
  • С чего начать
    • Что такое Agent Inbox?
    • Возможности ящика
    • Первый ящик
    • Получение API-ключа
  • Сценарии для агентов
    • Входящие письма
    • Allowlist и blocklist
    • Тредовые переписки
    • Human-in-the-loop
    • Pods и мультитенантность
    • Метки и состояние
  • Домены и доставляемость
    • Свой домен
    • SPF, DKIM и DMARC
    • Письма в спаме
    • Прогрев домена
    • Конфликты MX
  • Решение проблем
    • Ошибка 403
    • Лимиты запросов
    • Дублирование отправок
    • Домен не верифицируется
    • Отказы доставки (bounce)
  • Настройка DNS
    • Cloudflare
    • GoDaddy
    • Route 53 (AWS)
    • Namecheap
info@patternautomation.com
LogoLogo
On this page
  • Как это работает
  • Список тредов
  • По ящику
  • По всей организации
  • Полный тред
  • Ответ в треде
  • Цитаты в ответах
  • Метки и состояние
  • Советы
Сценарии для агентов

Как вести тредовые переписки?

Контекст в многоходовых email-диалогах.

Was this page helpful?
Edit this page
Previous

Как сделать human-in-the-loop?

Контроль человека над почтой агента.

Next
Built with

Треды — способ Agent Inbox группировать беседы. Новое письмо агента создаёт тред; ответы попадают в тот же тред с полной историей.

Как это работает

  1. Агент отправляет письмо — создаётся тред
  2. Получатель отвечает — ответ в том же треде
  3. Агент отвечает снова — снова тот же тред
  4. Вся история в одном месте

Треды создаются автоматически по заголовкам Message-ID, In-Reply-To, References.

Список тредов

По ящику

Python
1threads = client.inboxes.threads.list(
2 inbox_id="agent@agentinbox.space"
3)
4
5for t in threads.threads:
6 print(f"Thread: {t.subject} ({t.message_count} messages)")

По всей организации

Python
1# Get all threads from every inbox in your organization
2all_threads = client.threads.list()

Удобно для супервизоров, аналитики и маршрутизации между агентами.

Полный тред

Python
1thread = client.threads.get(thread_id="thread_abc123")
2
3for message in thread.messages:
4 print(f"From: {message.from_}")
5 print(f"Subject: {message.subject}")
6 print(f"Body: {message.text}")

Ответ в треде

Отвечайте на последнее сообщение:

Python
1thread = client.threads.get(thread_id="thread_abc123")
2last_message = thread.messages[-1]
3
4client.inboxes.messages.reply(
5 inbox_id="agent@agentinbox.space",
6 message_id=last_message.message_id,
7 text="Thanks for your message! Here's what I found...",
8 html="<p>Thanks for your message! Here's what I found...</p>"
9)

Указывайте и text, и html для ответов.

Цитаты в ответах

Поля extracted_text и extracted_html — только новый текст ответа без истории цитирования.

Python
1new_content = message.extracted_text
2content = message.extracted_text or message.text

Метки и состояние

Python
1unreplied = client.inboxes.threads.list(
2 inbox_id="agent@agentinbox.space",
3 labels=["unreplied"]
4)
5
6for thread in unreplied.threads:
7 thread_detail = client.threads.get(thread.thread_id)
8 last_message = thread_detail.messages[-1]
9
10 reply_text = your_agent.process(last_message)
11 client.inboxes.messages.reply(
12 inbox_id="agent@agentinbox.space",
13 message_id=last_message.message_id,
14 text=reply_text,
15 html=f"<p>{reply_text}</p>"
16 )
17
18 client.inboxes.messages.update(
19 inbox_id="agent@agentinbox.space",
20 message_id=last_message.message_id,
21 add_labels=["replied"],
22 remove_labels=["unreplied"]
23 )

Советы

  • Треды сохраняют контекст многоходовых диалогов
  • client.threads.list() — для дашбордов и маршрутизации
  • Метки вроде unreplied, escalated, resolved для состояния
  • Ответ всегда на последнее сообщение в треде