Skip to main content
Glama

LoopIn

API прерываний с участием человека (Human-in-the-loop) для ИИ-агентов.

LoopIn позволяет ИИ-агентам приостанавливаться в критических точках принятия решений, запрашивать проверку человеком и возобновлять выполнение на основе решения человека. Больше никаких агентов, принимающих рискованные решения в одиночку.


Почему LoopIn?

Автономные агенты эффективны — до тех пор, пока они не сталкиваются с решением, которое не должны принимать без участия человека. LoopIn дает каждому агенту безопасный выход:

  1. Агент достигает точки принятия решения → вызывает POST /interrupts

  2. LoopIn уведомляет человека → через вебхук или прямую ссылку на проверку

  3. Человек одобряет или отклоняет → через страницу проверки или POST /interrupts/:id/decide

  4. Агент опрашивает статус решения → GET /interrupts/:id

  5. Агент возобновляет работу → используя решение (и любые измененные параметры, предоставленные человеком)


Related MCP server: turn-mcp-web

Эндпоинты

POST /interrupts

Создание нового запроса на прерывание.

Запрос:

{
  "agentId": "agent-payments-v2",
  "userId": "user-123",
  "action": "Transfer $4,200 to vendor account ending in 9821",
  "context": {
    "vendor": "Acme Supplies",
    "amount": 4200,
    "currency": "USD",
    "invoiceId": "INV-2024-0892",
    "accountLast4": "9821"
  },
  "urgency": "high",
  "expiresIn": 1800,
  "callbackUrl": "https://my-agent.example.com/webhooks/loopin"
}

Ответ:

{
  "interruptId": "3f4e2a1b-...",
  "status": "pending",
  "expiresAt": "2024-04-12T14:30:00Z",
  "reviewUrl": "http://localhost:3002/review/3f4e2a1b-..."
}

GET /interrupts/:interruptId

Опрос текущего статуса и решения.

Ответ (ожидание):

{
  "interruptId": "3f4e2a1b-...",
  "status": "pending",
  "action": "Transfer $4,200 to vendor account ending in 9821",
  "context": { ... },
  "urgency": "high",
  "createdAt": "2024-04-12T13:00:00Z",
  "expiresAt": "2024-04-12T14:30:00Z",
  "reviewUrl": "http://localhost:3002/review/3f4e2a1b-..."
}

Ответ (решено):

{
  "interruptId": "3f4e2a1b-...",
  "status": "approved",
  "decision": "approved",
  "decidedAt": "2024-04-12T13:07:22Z",
  "reason": "Invoice verified, proceed."
}

POST /interrupts/:interruptId/decide

Отправка решения человека.

Запрос:

{
  "decision": "approved",
  "reason": "Invoice verified, proceed.",
  "modifiedParams": { "amount": 4200 }
}

Ответ:

{
  "interruptId": "3f4e2a1b-...",
  "status": "resolved",
  "decision": "approved",
  "decidedAt": "2024-04-12T13:07:22Z"
}

GET /interrupts/pending/:userId

Список всех ожидающих прерываний, требующих проверки пользователем.

Ответ:

[
  {
    "interruptId": "3f4e2a1b-...",
    "action": "Transfer $4,200 to vendor...",
    "urgency": "high",
    "createdAt": "...",
    "expiresAt": "...",
    "reviewUrl": "..."
  }
]

DELETE /interrupts/:interruptId

Отмена ожидающего прерывания (агенту больше не нужно решение).


GET /analytics/:userId

Статистика использования.

Ответ:

{
  "userId": "user-123",
  "totalInterrupts": 47,
  "approvalRate": 0.83,
  "avgResponseTimeMs": 142000,
  "byStatus": { "approved": 39, "rejected": 8 },
  "byUrgency": { "high": 12, "medium": 28, "low": 7 },
  "topActionTypes": [
    { "action": "Send payment", "count": 18 },
    { "action": "Delete records", "count": 9 }
  ]
}

Страница проверки

Каждое прерывание получает понятную человеку ссылку для проверки:

GET /review/:interruptId

Она отображает HTML-страницу, показывающую:

  • Что агент хочет сделать

  • Все контекстные данные (отформатированный JSON)

  • Значок срочности

  • Кнопки Одобрить / Отклонить

  • Дополнительное текстовое поле для причины

Поделитесь этой ссылкой с тем, кому нужно проверить запрос. По умолчанию вход в систему не требуется.


Инструменты MCP

MCP-сервер LoopIn предоставляет все 6 инструментов для использования с любым MCP-совместимым ИИ-клиентом (Claude Desktop, Cursor и т.д.):

Инструмент

Описание

create_interrupt

Агент создает новый запрос на прерывание

get_interrupt_status

Агент опрашивает статус решения

list_pending_interrupts

Человек видит, что требует проверки

decide_interrupt

Человек одобряет или отклоняет

cancel_interrupt

Агент отменяет ожидающий запрос

get_interrupt_analytics

Статистика использования

Настройка MCP-сервера (stdio)

{
  "mcpServers": {
    "loopin": {
      "command": "npx",
      "args": ["-y", "@colossal-api/loopin-mcp"],
      "env": {
        "LOOPIN_API_URL": "https://your-loopin-instance.railway.app",
        "LOOPIN_API_KEY": "your-key"
      }
    }
  }
}

Шаблон использования агентом

1. Agent reaches a decision point
   → POST /interrupts { agentId, userId, action, context, urgency }
   ← { interruptId, reviewUrl }

2. Agent saves interruptId and pauses
   → (optionally: notify human via other channels with reviewUrl)

3. Agent polls until resolved
   → GET /interrupts/:interruptId
   ← { status: "pending" }   ← keep polling
   ← { status: "approved", decision, modifiedParams }  ← resume

4. Agent resumes execution
   → use modifiedParams if provided, otherwise proceed as planned

Шаблон использования человеком

Вариант А — Ссылка для проверки (самый простой)

  1. Получите reviewUrl от агента (по электронной почте, в Slack и т.д.)

  2. Откройте ссылку в любом браузере

  3. Проверьте контекст, нажмите «Одобрить» или «Отклонить», добавьте причину (по желанию)

  4. Готово — агент получит решение при следующем опросе

Вариант Б — Список ожидающих (панель управления)

  1. GET /interrupts/pending/:userId — просмотр всех открытых запросов

  2. Откройте индивидуальные reviewUrl или вызовите POST /interrupts/:id/decide напрямую


Переменные окружения

Переменная

По умолчанию

Описание

PORT

3002

Порт API-сервера

LOOPIN_BASE_URL

http://localhost:3002

Публичный базовый URL для ссылок проверки

API_KEY_SECRET

(нет)

Опционально: требовать заголовок X-API-Key для всех запросов


Портфолио Colossal API

LoopIn является частью набора инфраструктурных API Colossal API для ИИ-агентов:

  • SubRadar — Обнаружение и отмена подписок

  • MeetSync — Согласование и планирование встреч

  • LoopIn — Прерывания и одобрения с участием человека

Все продукты разделяют одну философию дизайна: простые REST API с обертками MCP-серверов, чтобы агенты могли использовать их нативно.

Related MCP Connectors

Related MCP Servers