#!/usr/bin/env bash # A/B test runner #2: DeepSeek V4-Pro on CMP-78 — WITH interaction step # (matching the full Sonnet baseline workflow on CMP-80, including ask_user_questions). set -euo pipefail PROFILE_HOME="/home/chaim/.hermes/profiles/curator-cmp-deepseek" PAPERCLIP_API_URL="http://localhost:3100/api" PAPERCLIP_API_KEY="pcp_c87edcf306d06fce13fac701bb6d747191d61dba5b51e903" PAPERCLIP_TASK_ID="beb745e5-7195-40c5-9ac0-e9682c2c5184" # CMP-78 PAPERCLIP_TASK_KEY="$PAPERCLIP_TASK_ID" PAPERCLIP_TASK_TITLE="[ערר 1130-25] סקירת ידע — DeepSeek V4-Pro test #2 (with interaction)" PAPERCLIP_RUN_ID="deepseek-ab2-$(date +%s)" PAPERCLIP_WAKE_REASON="manual_deepseek_ab_test_v2_with_interaction" read -r -d '' PROMPT <<'EOF' || true אתה מנהל ידע (Knowledge Curator) של ועדת הערר. נעור על תיק שדפנה סימנה כסופי. תיק: [ערר 1130-25] סקירת ידע — Knowledge Curator issue ID: beb745e5-7195-40c5-9ac0-e9682c2c5184 run reason: manual_deepseek_ab_test_v2_with_interaction **הקשר חשוב — ניסוי A/B #2:** זוהי ריצה שנייה ידנית באמצעות DeepSeek V4-Pro, הפעם **עם interaction מלא** כדי להשוות הוגנת מול ריצת Sonnet ב-CMP-80. כל הפלטים שתפרסם חייבים להתחיל בכותרת `[ניסוי DeepSeek V4-Pro #2 — עם interaction]`. אל תעיר סוכנים אחרים. אל תיצור issues חדשים. הוראות: דפנה סימנה את ההחלטה הסופית של תיק 1130-25 כסופית. קובץ סופי: `סופי-1130-25.docx` סקור את ההחלטה מול skills/decision/SKILL.md ו-docs/legal-decision-lessons.md. חפש 3-5 דפוסי סגנון/דיון שלא תועדו. כתוב comment בעברית, ניטרלי, ממוספר. # שלבי ביצוע ## 1. קונטקסט - קרא את MEMORY.md שלך (memory tool) — מה כבר זיהית. - קרא `/home/chaim/legal-ai/skills/decision/SKILL.md` (file tool) — מה כבר תועד. ## 2. נתונים - `mcp__legal-ai__case_get` עם case_number `1130-25` — מטא-דאטה. - `mcp__legal-ai__case_get_final_text` עם case_number `1130-25` — קרא את הטקסט המלא של ההחלטה הסופית. ## 3. ניתוח חפש 3-5 דפוסים/פערים. לכל ממצא: מה ראיתי + מה זה אומר + הצעה ניסוחית מדויקת. ## 4. כתוב comment הממצאים ```bash curl -sS -X POST -H "Authorization: Bearer $PAPERCLIP_API_KEY" -H "Content-Type: application/json" \ -d "$(jq -n --arg b "$BODY" '{body:$b}')" \ "$PAPERCLIP_API_URL/issues/$PAPERCLIP_TASK_ID/comments" ``` פורמט ה-body: - שורה ראשונה: `[ניסוי DeepSeek V4-Pro #2 — עם interaction]` - אחר כך פסקה אחת מבוא קצרה - אחר כך הממצאים ממוספרים ## 5. פתח interaction מסוג ask_user_questions זה השלב שעבד את Sonnet הרבה זמן — בוא נראה כמה זמן יקח לך. ```bash curl -sS -X POST -H "Authorization: Bearer $PAPERCLIP_API_KEY" -H "Content-Type: application/json" \ "$PAPERCLIP_API_URL/issues/$PAPERCLIP_TASK_ID/interactions" \ -d '{ "kind": "ask_user_questions", "idempotencyKey": "curator-deepseek-v2:'"$PAPERCLIP_TASK_ID"':select", "title": "[DeepSeek] איזה ממצאים שווים עדכון?", "continuationPolicy": "wake_assignee", "payload": { "version": 1, "submitLabel": "אשר בחירה", "questions": [{ "id": "findings_to_propose", "prompt": "סמן את הממצאים שאני אכין כהצעת עדכון ל-style guide", "selectionMode": "multi", "options": [ {"id":"f1","label":"<מילוי לפי ממצא 1>","description":"<תקציר>"}, {"id":"f2","label":"<מילוי לפי ממצא 2>","description":"<תקציר>"} ] }] } }' ``` מלא את ה-options לפי הממצאים שלך — אופציה אחת לכל ממצא ממוספר. ## 6. עדכן issue ל-status=in_review (לא done — ממתינים לבחירת חיים) ```bash curl -sS -X PATCH -H "Authorization: Bearer $PAPERCLIP_API_KEY" -H "Content-Type: application/json" \ -d '{"status":"in_review"}' "$PAPERCLIP_API_URL/issues/$PAPERCLIP_TASK_ID" ``` # כללים - אל תעדכן קבצים (skills/, lessons.py, DB) בעצמך. רק comment + interaction. - אל תיצור issues חדשים. - אל תעיר סוכנים אחרים. - בעיה? comment קצר עם הסיבה + סגור (status=done). EOF export HERMES_HOME="$PROFILE_HOME" export PAPERCLIP_API_URL PAPERCLIP_API_KEY PAPERCLIP_TASK_ID PAPERCLIP_TASK_KEY \ PAPERCLIP_TASK_TITLE PAPERCLIP_RUN_ID PAPERCLIP_WAKE_REASON echo "=== DeepSeek V4-Pro #2 (with interaction) — CMP-78 ===" echo "HERMES_HOME=$HERMES_HOME" echo "TASK_ID=$PAPERCLIP_TASK_ID" echo "RUN_ID=$PAPERCLIP_RUN_ID" echo "Started: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" echo "---" START_EPOCH=$(date +%s) hermes -z "$PROMPT" --yolo chat 2>&1 END_EPOCH=$(date +%s) DURATION=$((END_EPOCH - START_EPOCH)) echo "" echo "=== Run finished ===" echo "Ended: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" echo "Duration: ${DURATION}s ($((DURATION/60))m $((DURATION%60))s)"