jq로 바로 파이프할 수 있는 깔끔한 JSON을 stdout에 출력합니다. 이 레시피들은 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을 전달하세요. 데이터는 JSON 형태로 stdout에 출력되고, 사람이 읽는 상태 메시지와 오류는 stderr로 출력되므로 stdout은jq로 파이프하기에 깔끔한 상태를 유지합니다. - stderr 텍스트가 아닌 종료 코드로 분기하세요.
0성공 ·2잘못된 인수 ·3대시보드에 연결할 수 없음 ·4로그인되지 않았거나 만료됨 ·5권한 없음. -h로 탐색하세요. 모든 명령어는 필터, 값 형식, JSON 구조를 문서화하고 있습니다.
최초 설정
작업 전 인증 확인
whoami는 세션이 없거나 만료된 경우에도 오류를 발생시키지 않고 logged_in:false를 반환하므로, 에이전트가 안전하게 인증 상태를 확인할 수 있습니다. (베이스 URL이 설정되지 않았거나 대시보드에 연결할 수 없는 경우에는 여전히 non-zero로 종료될 수 있습니다.)
실패하거나 점수가 낮은 세션 찾기
sessions가 아닌 **evals**에서 처리됩니다. --score KEY:MIN..MAX는 반복 사용 가능하며 AND 조건으로 결합됩니다. 각 경계는 선택 사항입니다(..0.5는 ≤ 0.5, 0.9..는 ≥ 0.9를 의미합니다). 요청당 최대 20개의 점수 필터를 전달할 수 있으며, 그 이상이면 HTTP 400을 반환합니다. sessions는 evals와 --env, --status, --agent-id, --session-id, 시간 범위 필터를 공유하지만 --score는 없습니다.
세션 전체 읽기
단일session show 명령어는 없습니다 — 이벤트 기록과 세션 평가를 조합하세요:
전체 가져오기 (페이지네이션)
결과는 최신순으로 반환되며 커서 기반 페이지네이션을 사용합니다.—fields로 출력 줄이기
에이전트가 읽어야 할 양을 줄이기 위해 키를 제한합니다(테이블과--json 모두 적용).
2). 필드명을 확인하는 간편한 방법입니다.
유효한 필터 값 탐색
조직 선택 (멀티 테넌트)
여러 조직에 속한 경우, 로그인 시 활성 테넌트를 선택할 수 있습니다(저장됩니다):--org 없이 여러 조직에 로그인하면 non-zero로 종료되고 선택 가능한 조직 목록이 출력됩니다.
SDK/수집기용 API 키 생성
저장된 쿼리 또는 즉석 쿼리 실행
인시던트 비대화형으로 처리
변경(mutation) 명령어는--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"} |
실패 (모든 경우, --json 사용 시) | stdout에 {"error": "...", "exit_code": <n>, "status"?: <http>, "hint"?: "..."} |
- 각 이벤트 항목(
events):id, session_id, agent_id, event_type, ts, payload, environment. - 각 평가 항목(
evals):id, session_id, agent_id, environment, status, scores, reasoning, summary, error, attempt_count, duration_ms, completed_at, created_at. - 각 세션 항목(
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의 필드 집합이 다르므로, 한쪽에서 유효한 이름이 다른 쪽에서는 거부될 수 있습니다.
