Перейти к основному содержанию
Извлекайте данные сессий, событий и оценок (и запускайте переоценки) прямо из скрипта или кодирующего агента с чистым JSON на stdout, который можно передать прямо в jq. Эти рецепты превращают данные наблюдаемости AgentEye в то, что может запросить и автоматизировать пользователь терминала или AI кодирующий агент (Claude Code, Cursor), без навигации по панели управления. Приведённые ниже примеры готовы к копированию и вставке для AgentEye CLI (agenteye). Для установки, аутентификации и полного списка параметров см. CLI; запустите agenteye -h или agenteye <command> -h для встроенной справки.

Золотые правила

  1. Глобальные опции идут перед командой. agenteye --json sessions — правильно; agenteye sessions --json — неправильно. Глобальные параметры: --json, --base-url, --org, --token, --insecure/--secure, --timeout, --quiet, --no-color.
  2. Передавайте --json при каждом разборе выходных данных. Данные выводятся в stdout как JSON; статус и ошибки идут в stderr, поэтому stdout остаётся чистым для передачи в jq.
  3. Ветвитесь по коду выхода, а не по тексту stderr: 0 ok · 2 неверные аргументы · 3 панель управления недоступна · 4 не залогирован или сессия истекла · 5 отсутствует разрешение.
  4. Изучайте с помощью -h. Каждая команда документирует свои фильтры, форматы значений и форму JSON.

Одноразовая настройка

Проверьте аутентификацию перед работой

whoami никогда не ошибается при отсутствующей или истёкшей сессии; вместо этого сообщает logged_in:false, поэтому агент может безопасно проверить состояние аутентификации. (Он всё ещё может выйти с ненулевым кодом, если не установлен базовый URL или панель управления недоступна.)

Найдите сессии с ошибками или низким рейтингом

Фильтрация по баллам находится в evals, а не в sessions. --score KEY:MIN..MAX повторяется и комбинируется через AND; любая граница опциональна (..0.5 означает ≤ 0.5, 0.9.. означает ≥ 0.9). Вы можете передать до 20 фильтров по баллам за запрос; больше вернёт HTTP 400. sessions имеет фильтры --env, --status, --agent-id, --session-id и диапазон времени, общие с evals, но не имеет --score.

Прочитайте одну сессию полностью

Нет единой команды session show — объедините цепь событий с оценкой сессии:

Получите всё (постраничная навигация)

Результаты отсортированы от новых к старым и используют постраничную навигацию по курсору.

Уменьшите выходные данные с помощью —fields

Ограничьте ключи (как в таблице, так и в --json), чтобы сократить объём, который должен прочитать агент.
Неизвестные имена полей отклоняются (выход 2) со списком действительных, это дешёвый способ найти имена полей.

Откройте допустимые значения фильтров

Выберите вашу организацию (мультитенантность)

Если вы принадлежите более чем одной организации, выберите активного тенанта при входе (это сохраняется):
Вход в мультиорганизацию без --org выходит с ненулевым кодом и выводит организации на выбор.

Подготовьте API ключ для SDK/сборщика

Запустите сохранённый или ad-hoc запрос

Разберитесь в инциденте в неинтерактивном режиме

Мутации автоматически пропускают подтверждение под --json или когда stdin не TTY, поэтому агенты никогда не зависают; передайте --yes/-y для явного пропуска в других местах.

Обработка кодов выхода в скрипте

Формы выходных данных JSON

Командаstdout JSON (с --json)
whoami{"logged_in": true, "id", "email", "is_instance_admin", "active_org", "permissions": [...], "memberships": [...]} или {"logged_in": false}
orgs list{"active_org", "orgs": [{"org_slug","org_name","permission_set","permissions"}]}
events{"events": [...], "next_cursor": <cursor or null>}
evals{"evaluations": [...], "next_cursor": <cursor or null>}
sessions{"sessions": [...], "next_cursor": <cursor or null>}
errors{"errors": [...], "next_cursor": <cursor or null>}
list <kind>{"kind", "values": [...]}
keys list / keys create{"keys": [...]} / {id, name, permissions, created_at, key} (key показан один раз)
query run{columns: [{name,type}], rows: [[...]], truncated, elapsed_ms}
users list / settings list{"users": [...]} / {"settings": [...]}
alerts list / incidents list{"alerts": [...]} / {"incidents": [...]}
create/update/delete (любой)объект ресурса или {"deleted": true, "id"} для удаления
failure (любой, с --json){"error": "...", "exit_code": <n>, "status"?: <http>, "hint"?: "..."} в stdout
  • Каждый элемент event (events): id, session_id, agent_id, event_type, ts, payload, environment.
  • Каждый элемент evaluation (evals): id, session_id, agent_id, environment, status, scores, reasoning, summary, error, attempt_count, duration_ms, completed_at, created_at.
  • Каждый элемент session (sessions): session_id, agent_id, environment, status, scores, event_count, started_at, last_event_at, first_event_id, last_event_id, latest_evaluation.
Параметр --fields каждой команды принимает ровно имена полей своего собственного элемента — набор отличается между sessions и evals, поэтому имя, действительное для одного, может быть отклонено другим.