> ## Documentation Index
> Fetch the complete documentation index at: https://docs.befailproof.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cli recipes

title: "מתכונים CLI לסוכנים"
description: "תיעוד מתכונים CLI של AgentEye לסוכנים."
-----------------------------------------------------

משכו נתוני הפעלה, אירועים והערכה (והפעילו הערכה מחדש) ישירות מסקריפט או מסוכן קודינג, עם JSON נקי ב-stdout שמועבר ישירות ל-`jq`. המתכונים האלה הופכים את נתוני הנצפיות של AgentEye למשהו שמשתמש בטרמינל או סוכן קודינג AI (Claude Code, Cursor) יכול לשאול ולהפוך לאוטומציה, בלי ללחוץ דרך לוח הבקרה.

הדפוסים בהמשך מוכנים להעתקה ישירה ל-CLI של AgentEye (`agenteye`). להתקנה, אימות וההצעה המלאה ראו [CLI](/he/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` בסדר · `2` ארגומנטים שגויים · `3` לא מוצא את לוח הבקרה · `4` לא מחובר או פג תוקף · `5` הרשאה חסרה.
4. **גלו עם `-h`.** כל פקודה מתעדת את הסינונים שלה, פורמטי ערך ותצורת JSON.

## התקנה חד-פעמית

```bash theme={null}
export AGENTEYE_DASHBOARD_URL=https://agenteye.example.com   # כדי לא לחזור על --base-url
agenteye login --email you@example.com                       # הדביקו את הקוד שנשלח בדוא"ל; תקף ~24h
```

## אשרו אימות לפני ביצוע עבודה

`whoami` לעולם לא יחזור בשגיאה בהפעלה חסרה או פגה; הוא מדווח `logged_in:false` במקום זה, כך שסוכן יכול לבדוק את מצב האימות בבטחה. (עדיין יכול להחזור non-zero אם לא הוגדרה כתובת בסיס או לוח הבקרה לא זמין.)

```bash theme={null}
if [ "$(agenteye --json whoami | jq -r .logged_in)" != "true" ]; then
  echo "Not authenticated. Run: agenteye login" >&2; exit 1
fi
```

## מצאו הפעלות בעלות ניקוד נמוך או כשלון

```bash theme={null}
# הפעלות ב-24 השעות האחרונות שהערכתן הסתיימה בשגיאה
agenteye --json sessions --since 24h --status error | jq -r '.sessions[].session_id'

# הערכות בניקוד <= 0.5 בעזרתיות, לסוכן אחד
agenteye --json evals --agent-id checkout-bot --score helpfulness:..0.5 \
  | jq '.evaluations[] | {session_id, scores}'
```

סינון הניקוד נמצא ב-**`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` יחידה — שלבו את רצף האירוע עם ההערכה של ההפעלה:

```bash theme={null}
# ההערכה האחרונה של ההפעלה (סטטוס + ניקוד)
agenteye --json evals --session-id run-001 | jq '.evaluations[0] | {status, scores}'

# כל אירוע בריצה (הרימו את --limit לסריקה מלאה)
agenteye --json events --session-id run-001 --all --limit 1000 | jq '.events[] | {ts, event_type}'

# רק קריאות הכלי בהפעלה
agenteye --json events --session-id run-001 --event-type tool_use,tool_result --all \
  | jq '.events[].payload'
```

## משכו הכל (עימוד)

התוצאות הן החדשות ביותר תחילה ועומדות להעברה תור.

```bash theme={null}
# בזריקה אחת: משוך עד 500 שורות בדפים של 200 שורות
agenteye --json events --session-id run-001 --limit 500 --all > events.json

# עימוד ידני: החזירו את next_cursor חזרה פנימה
page=$(agenteye --json events --limit 100)
cursor=$(echo "$page" | jq -r '.next_cursor // empty')
[ -n "$cursor" ] && agenteye --json events --limit 100 --cursor "$cursor"
```

## הצרו את הפלט עם --fields

הגבלו את המפתחות (בטבלה וב-`--json`) כדי להקטין את מה שסוכן חייב לקרוא.

```bash theme={null}
agenteye --json sessions --since 7d --fields session_id,status,scores | jq -c '.sessions[]'
agenteye --json events --session-id run-001 --fields ts,event_type --all
```

שמות שדות לא ידועים נדחים (exit `2`) עם הרשימה התקנה, דרך זולה להגדרת שמות שדות.

## גלו ערכי סינון תקפים

```bash theme={null}
agenteye --json list envs | jq -r '.values[]'           # ערכים ל---env
agenteye --json list tools | jq -r '.values[]'          # שמות כלים; גם סוכנים, מודלים, event_types, …
agenteye --json list score_filters | jq -r '.values[]'  # KEY תקף ל---score KEY:MIN..MAX
```

## בחרו את הארגון שלכם (ריבוי דיירים)

אם אתם שייכים ליותר מארגון אחד, בחרו בדיייר הפעיל בהתחברות (הוא נשמר):

```bash theme={null}
agenteye login --org acme --email you@corp.com   # קבעו את הדיייר באותו שלב כמו התחברות
agenteye --json orgs list | jq -r '.orgs[].org_slug'
agenteye --org globex --json sessions --since 24h   # דרוס לפקודה אחת
```

התחברות ריבוי-ארגון ללא `--org` חוזרת non-zero והדפסה של הארגונים לבחירה.

## יצור מפתח API ל-SDK/מאסף

```bash theme={null}
# הסוד מודפס פעם אחת — עם --json זה שדה .key
key=$(agenteye --json keys create ci-bot --add events:read.add | jq -r '.key')
agenteye keys regenerate ci-bot --yes    # סיבוב; agenteye keys disable ci-bot --yes לשלילה
```

## הריצו שאילתה שמורה או ad-hoc

```bash theme={null}
agenteye --json query run --sql "select count(*) from analytics.events" | jq '.rows'
agenteye --json query run errs --arg prod | jq '.rows'   # שאילתה שמורה + $1 משתנה
```

## יהלם תקרית ללא אינטראקטיביות

```bash theme={null}
id=$(agenteye --json incidents list --state firing | jq -r '.incidents[0].id')
agenteye incidents ack "$id"
agenteye incidents assign "$id" --assignee you@corp.com
agenteye incidents resolve "$id" --yes
```

> מוטציות דלג-אוטומטי על הנקודת האישור שלהם תחת `--json` או כאשר stdin אינו TTY, כדי שסוכנים לא תלויים; העברו `--yes`/`-y` לדלג עליה באופן מפורש במקומות אחרים.

## טיפול בקוד יציאה בסקריפט

```bash theme={null}
out=$(agenteye --json sessions --since 1h) || code=$?
case "${code:-0}" in
  0) echo "$out" | jq '.sessions | length' ;;
  4) echo "Session expired - run 'agenteye login'." >&2 ;;
  5) echo "Missing permission (ask an admin for evaluations:read)." >&2 ;;
  3) echo "Dashboard unreachable - check the URL." >&2 ;;
  *) echo "Unexpected error (exit ${code})." >&2 ;;
esac
```

## תצורות פלט 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": [...]}`                                                                                                  |
| יצירה/עדכון/מחיקה (כל אחד)       | אובייקט המשאב, או `{"deleted": true, "id"}` למחיקות                                                                                           |
| כשל (כל אחד, עם `--json`)        | `{"error": "...", "exit_code": <n>, "status"?: <http>, "hint"?: "..."}` ב-stdout                                                              |

* כל פריט **אירוע** (`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`, כך ששם תקף לאחד עלול להידחות על ידי השני.
