feat: add skills, memory, delegation and self-learning (Phase 3)

Add three Hermes-inspired capabilities to Shira:

- Skills system: firm-wide workflow templates (list/view/manage tools),
  4 pre-seeded skills (case summary, hearing prep, direct access report,
  deadline tracker), auto-learning via post-conversation meta-prompt
- Cross-conversation memory: per-lawyer profiles and per-case memory
  stored as bounded markdown files, injected into system prompts
- Sub-agent delegation: spawn up to 3 child AgentRunner instances for
  parallel document analysis and complex multi-step tasks

New files: skills.py, memory.py, delegate.py, learner.py, 4 SKILL.md
Updated: agent_runner (6 new tools, depth/blocked_tools support),
prompt_builder (skills/memory injection), route (memory loading,
background learning), main.py (data dirs), Dockerfile (pyyaml, skills)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 19:33:57 +00:00
parent 4c491ce45a
commit 4aad81e11e
15 changed files with 1022 additions and 13 deletions
+58
View File
@@ -0,0 +1,58 @@
---
name: deadline-tracker
description: סריקת מועדים קריטיים והתראות פרואקטיביות
version: 1.0.0
---
# מעקב מועדים
## מתי להשתמש
- כשעורך דין שואל "מה יש לי השבוע?" / "מה דחוף?"
- כשמזהים משימות באיחור בקונטקסט
- כשיש דיון ב-7 ימים הקרובים
- במצב office — כשמבקשים סקירת מועדים
## תהליך
1. **סרוק את הקונטקסט** לכל דבר עם תאריך:
- `openTasks` — בדוק `dateEnd` מול התאריך הנוכחי
- `upcomingMeetings` — בדוק `dateStart`
- `cNextHearing` — מועד הדיון הבא
- `cFilingDeadline` — מועד הגשה (גישה ישירה)
2. **סווג לפי דחיפות:**
- 🔴 **עבר מועד** — משימות שה-dateEnd עבר
- 🟠 **היום / מחר** — פעולות ל-24 שעות הקרובות
- 🟡 **השבוע** — ב-7 ימים הקרובים
- 🟢 **בהמשך** — מעבר ל-7 ימים
3. **הצג בפורמט:**
```
📅 מעקב מועדים — [תאריך היום]
🔴 עבר מועד:
- [משימה] — היה צריך ב-[תאריך] (לפני [X] ימים)
🟠 היום / מחר:
- [פגישה/דיון] — [תאריך ושעה]
- [משימה] — מועד: [תאריך]
🟡 השבוע:
- [דיון] — [תאריך] ב-[בית משפט]
- [משימה] — מועד: [תאריך]
🟢 בהמשך:
- [פגישה] — [תאריך]
```
4. **הצע פעולות:**
- למשימות באיחור: "האם לעדכן את המועד?"
- לדיון קרוב: "האם להתחיל הכנה?" (skill: hearing-preparation)
- למועד הגשה קרוב: "האם יש מה להכין?"
## כללים
- תמיד ציין כמה ימים נשארו / עברו
- סדר לפי דחיפות (עבר מועד → היום → השבוע)
- אם אין כלום דחוף — ציין "אין מועדים דחופים"
- שלב עם office mode — הראה מועדים לכל התיקים
@@ -0,0 +1,78 @@
---
name: direct-access-report-flow
description: תהליך שלב-אחר-שלב לאיסוף מידע ויצירת דוח גישה ישירה
version: 1.0.0
---
# דוח גישה ישירה — תהליך איסוף מידע
## מתי להשתמש
כשעורך דין מבקש ליצור דוח גישה ישירה / דוח דיווח ראשוני, או כשהתיק מסוג DirectAccess.
## 8 שלבי התהליך
### שלב 1: מילוי אוטומטי
שלוף מהקונטקסט של התיק:
- `cAppointmentDate` → תאריך מינוי
- `cLegalAidType` → סוג סיוע
- `cUrgencyLevel` → רמת דחיפות
- `cFilingDeadline` → מועד הגשה
### שלב 2: פרטי מינוי
שאל על:
- תאריך מינוי (אם לא קיים)
- סוג סיוע משפטי (ייצוג/ייעוץ/הגשת כתב טענות)
- רמת דחיפות
- מועד אחרון להגשה
### שלב 3: קשר עם לקוח
שאל (קבץ 2-3 שאלות):
- האם נוצר קשר עם הלקוח?
- תאריך יצירת קשר ראשון
- אם היה עיכוב — מה הסיבה?
- תאריך פגישה
- אם היה עיכוב בפגישה — מה הסיבה?
### שלב 4: פרטי הליך
שאל:
- מספר הליך
- בית משפט (בחירה מ-6 אפשרויות)
- נושא ההליך
- תמצית התביעה
- טענות ההגנה
### שלב 5: ניתוח משפטי (12 שאלות)
שאל בקבוצות של 2-3:
- q1: עיון במסמכים — האם עיינת? מה מצאת?
- q2: נימוקים — האם עיינת בנימוקי הערעור?
- q3: הרכב — האם יש התאמה/אי-התאמה בהרכב?
- q4: תלונות — האם הוגשו תלונות?
- q5: שימוע — האם היה שימוע כדין?
- q6: בדיקות — האם בוצעו בדיקות קליניות?
- q7: שיקום — האם בוצע שיקום?
- q8: ציון — מה הציון שנקבע?
- q9: קביעה — האם הקביעה סבירה?
- q10: ייחודי — האם יש היבט ייחודי?
- q11: תקדימים — פסיקה רלוונטית
- q12: סיכום — הערכה כללית
### שלב 6: המלצה
שאל:
- סוג המלצה (9 אפשרויות)
- פירוט ההמלצה
### שלב 7: מיצוי זכויות
שאל:
- האם נדרש סיוע נוסף?
- פירוט
- דחיפות
### שלב 8: יצירת הדוח
כשכל המידע נאסף — הפעל generate_initial_report עם כל הפרמטרים.
## כללים חשובים
- **לא** להפעיל את generate_initial_report עד שכל המידע נאסף
- שאל בסגנון שיחה טבעי, לא כטופס
- קבץ 2-3 שאלות קשורות ביחד
- אם המשתמש לא יודע תשובה — דלג ועבור הלאה
- שמור התקדמות בזיכרון עם save_memory
@@ -0,0 +1,52 @@
---
name: hearing-preparation
description: הכנה לדיון בבית משפט — צ'קליסט ותזכורות
version: 1.0.0
---
# הכנה לדיון בבית משפט
## מתי להשתמש
כשעורך דין מבקש להתכונן לדיון, שואל "מה צריך להכין", או כשיש דיון בשבוע הקרוב.
## תהליך
1. **בדיקת פרטי הדיון** — תאריך, בית משפט, שופט, נושא
2. **סריקת מסמכים** — השתמש ב-list_documents ובדוק אילו מסמכים רלוונטיים
3. **בדיקת משימות פתוחות** — האם יש משימות הכנה שטרם הושלמו
4. **עובדות מפתח** — שלוף מזיכרון התיק (strategy, key_facts, decisions)
5. **יצירת צ'קליסט** — הצע רשימת הכנה
## צ'קליסט הכנה לדיון
```
✅ הכנה לדיון — [תאריך] — [בית משפט]
📑 מסמכים:
☐ כתבי טענות מעודכנים
☐ פרוטוקולים מדיונים קודמים
☐ ראיות / נספחים
☐ חוות דעת מומחה (אם רלוונטי)
📋 הכנה מקצועית:
☐ סיכום טענות עיקריות
☐ רשימת תקדימים רלוונטיים
☐ רשימת עדים (אם רלוונטי)
☐ חישובי סכומים (אם רלוונטי)
📞 תיאום:
☐ אישור מועד עם לקוח
☐ תיאום עם עדים
☐ עדכון צד שכנגד (אם נדרש)
📦 ליום הדיון:
☐ עותקים לשופט ולצדדים
☐ תעודת זהות הלקוח
☐ ייפוי כוח (אם נדרש)
```
## כללים
- אם חסרים מסמכים קריטיים — הדגש ב-⚠️
- הצע ליצור משימות לכל פריט חסר
- אם הדיון בעוד פחות מ-3 ימים — סמן דחיפות
- שמור עובדות מפתח בזיכרון עם save_memory
+53
View File
@@ -0,0 +1,53 @@
---
name: legal-case-summary
description: יצירת סיכום תיק משפטי מקיף עם כל הפרטים הרלוונטיים
version: 1.0.0
---
# סיכום תיק משפטי
## מתי להשתמש
כשעורך דין מבקש סיכום תיק, סקירה כללית, או "מה המצב בתיק".
## תהליך
1. **איסוף מידע** — השתמש ב-query_info עם query_type "general" כדי לקבל את כל פרטי התיק
2. **סריקת משימות** — בדוק openTasks ו-overdue
3. **סריקת פגישות** — בדוק upcomingMeetings ו-recentMeetings
4. **מסמכים** — אם יש מסמכים רלוונטיים, ציין אותם
5. **זיכרון** — כלול עובדות מפתח מ-caseMemory
## מבנה הסיכום
```
📋 סיכום תיק: [שם התיק] (#[מספר])
📊 סטטוס: [סטטוס בעברית]
⚖️ בית משפט: [שם] | שופט: [שם]
📅 דיון הבא: [תאריך]
👥 אנשי קשר:
- [שם] ([תפקיד]) — [טלפון]
📌 עובדות מפתח:
- [מזיכרון התיק]
📋 משימות פתוחות ([מספר]):
- [רשימה]
📅 פגישות קרובות:
- [רשימה]
📝 הערות אחרונות:
- [רשימה]
⚠️ דגשים:
- [משימות באיחור, מועדים קרובים, פעולות נדרשות]
```
## כללים
- תמיד בעברית
- תאריכים בפורמט DD/MM/YYYY
- סמן משימות באיחור ב-⚠️
- אם יש מועד דיון ב-7 ימים הקרובים — הדגש
- הצע פעולות המשך (למשל "האם ליצור משימה?")