jq. Эти рецепты превращают данные наблюдаемости AgentEye в то, что может запросить и автоматизировать пользователь терминала или AI кодирующий агент (Claude Code, Cursor), без навигации по панели управления.
Приведённые ниже примеры готовы к копированию и вставке для AgentEye CLI (agenteye). Для установки, аутентификации и полного списка параметров см. CLI; запустите agenteye -h или agenteye <command> -h для встроенной справки.
Золотые правила
- Глобальные опции идут перед командой.
agenteye --json sessions— правильно;agenteye sessions --json— неправильно. Глобальные параметры:--json,--base-url,--org,--token,--insecure/--secure,--timeout,--quiet,--no-color. - Передавайте
--jsonпри каждом разборе выходных данных. Данные выводятся в stdout как JSON; статус и ошибки идут в stderr, поэтому stdout остаётся чистым для передачи вjq. - Ветвитесь по коду выхода, а не по тексту stderr:
0ok ·2неверные аргументы ·3панель управления недоступна ·4не залогирован или сессия истекла ·5отсутствует разрешение. - Изучайте с помощью
-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, поэтому имя, действительное для одного, может быть отклонено другим.
