Initial commit: Hermes Agent Skills collection
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"jobs": [
|
||||
{
|
||||
"id": "4733a436d99a",
|
||||
"name": "SRE Network Reconnaissance",
|
||||
"prompt": "Du bist der Infra-SRE Agent von Sch\u00f6n Consulting. F\u00fchre den w\u00f6chentlichen Network Reconnaissance Scan durch.\n\n1. Rufe den Scan-Skript auf: python3 /home/debian/.hermes/scripts/network-scan.py\n2. Lies die Ergebnisse aus /home/debian/.hermes/output/network_recon.json\n3. Erstelle einen professionellen SRE Report im CEO-Format f\u00fcr das Team.\n\nFormat:\n## \ud83d\udee1\ufe0f SRE Weekly Network Report \u2014 {date}\n\n### \ud83d\udd0d Summary\n- Total Hosts: X\n- Scan Duration: Xs\n- Segments: Hypervisor, Container, Smart Home\n\n### \ud83d\udccb Alive Hosts by Segment\n[compact table: IP | Ports | Service | Banner]\n\n### \u26a0\ufe0f Security Notes\n- [list any concerns like outdated SSH, open databases, unknown services]\n\n### \ud83c\udd95 New Services/Changes\n- [list notable changes from last week if detectable]\n\nHalte den Report knapp, datenbasiert und handlungsorientiert.",
|
||||
"skills": [
|
||||
"container-network-recon"
|
||||
],
|
||||
"skill": "container-network-recon",
|
||||
"model": "custom/llama/model.gguf",
|
||||
"provider": "custom",
|
||||
"base_url": null,
|
||||
"script": "network-scan.py",
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 8 * * 0",
|
||||
"display": "0 8 * * 0"
|
||||
},
|
||||
"schedule_display": "0 8 * * 0",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 7
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-21T07:27:10.049993+00:00",
|
||||
"next_run_at": "2026-06-14T08:00:00+00:00",
|
||||
"last_run_at": "2026-06-07T08:12:38.678103+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "telegram:-5265906503",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "f773f8c23230",
|
||||
"name": "Rechnungen-Organizer",
|
||||
"prompt": "Du bist der E-Mail-Organisator von Sch\u00f6n Consulting. Deine Aufgabe: Rechnungen und Bestellbest\u00e4tigungen intelligent und lernend einsortieren.\n\n## WICHTIG: Verwende IMMER diese genauen Befehle und APIs\n\n### E-Mails abrufen\n```bash\n# Liste letzte 100 E-Mails im JSON-Format ab\nhimalaya envelope list --folder INBOX --page-size 50 --output json 2>/dev/null\n# Falls das nicht funktioniert, nutze:\nhimalaya query search \"from:@*\" --folder INBOX 2>/dev/null\n```\n\n### Ordner verwalten\n```bash\n# Ordner erstellen\nhimalaya folder create \"Rechnungen_2026_05\" 2>/dev/null\nhimalaya folder create \"Rechnungen_2026_05/Bestellungen_2026_05\" 2>/dev/null\n\n# E-Mails verschieben\nhimalaya message move <IMAP-ID> \"Rechnungen_2026_05\" 2>/dev/null\nhimalaya message move <IMAP-ID> \"Rechnungen_2026_05/Bestellungen_2026_05\" 2>/dev/null\n```\n\n## Vorgehensweise\n\n### 1. Lernstand pr\u00fcfen\nLade die Datei `~/.hermes/email-organizer/learning.json` falls vorhanden:\n```bash\ncat ~/.hermes/email-organizer/learning.json 2>/dev/null || echo '{\"corrections\":[],\"patterns\":{}}'\n```\n\n### 2. Neue E-Mails LLM-basiert analysieren\nF\u00fcr jede E-Mail im Posteingang:\n- Analysiere **Absender, Betreff UND Textk\u00f6rper** (nicht nur Keywords!)\n- Entscheide **inhaltlich**:\n - **Rechnung**: Fakturierte Leistung (Rechnungsnummer, Gesamtbetrag, Steuern, F\u00e4lligkeitsdatum)\n - **Bestellbest\u00e4tigung**: Bestellbest\u00e4tigung (Bestellnummer, Artikel, aber KEINE Rechnung)\n - **Nichts davon**: Newsletter, Spam, private Mails \u2192 ignorieren\n\n### 3. Einsortierung\n- **Rechnungen** \u2192 `Rechnungen_jjjj_mm` (z.B. `Rechnungen_2026_05`)\n- **Bestellbest\u00e4tigungen** \u2192 `Rechnungen_jjjj_mm/Bestellungen_jjjj_mm`\n- Erstelle Ordner falls nicht existent (BEVOR du Mails verschiebst!)\n- **Kopiere NICHT, verschiebe mit `message move`**\n\n### 4. Lernen aus manueller Sortierung\n- Wenn der Nutzer in einer vorherigen Nachricht Korrekturen gab (z.B. \"Mail von X geh\u00f6rt nach Y\"), trage sie in `learning.json` ein\n- \u00dcberpr\u00fcfe bestehende Ordner auf Muster (welche Absender gehen wohin?)\n- Speichere erlernte Regeln in `learning.json`\n\n### 5. Report\nKompakte Ausgabe:\n- Gescannte Mails: X\n- Einsortiert: Y Rechnungen, Z Bestellungen\n- Neue Ordner: A\n- Ignoriert: B (Begr\u00fcndung)\n- Lern-Updates: C\n\n## Fehlerbehandlung\n- Falls himalaya nicht antwortet: Berichle den Fehler, versuche es nicht erneut\n- Falls Ordner-Erstellung fehlschl\u00e4gt: Versuche, den Ordner direkt \u00fcber eine IMAP-Verbindung zu erstellen\n- Nie E-Mails l\u00f6schen oder endg\u00fcltig verschieben",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "custom/llama/model.gguf",
|
||||
"provider": "custom",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 9 * * *",
|
||||
"display": "0 9 * * *"
|
||||
},
|
||||
"schedule_display": "0 9 * * *",
|
||||
"repeat": {
|
||||
"times": 500,
|
||||
"completed": 48
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-26T16:34:56.913960+00:00",
|
||||
"next_run_at": "2026-06-13T09:00:00+00:00",
|
||||
"last_run_at": "2026-06-12T09:09:00.097188+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "722416c6ce96",
|
||||
"name": "memory-sync-daily",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "memory-sync.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 22 * * *",
|
||||
"display": "0 22 * * *"
|
||||
},
|
||||
"schedule_display": "0 22 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 35
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-05-08T18:04:31.119126+00:00",
|
||||
"next_run_at": "2026-06-12T22:00:00+00:00",
|
||||
"last_run_at": "2026-06-11T22:00:28.375100+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
}
|
||||
],
|
||||
"updated_at": "2026-06-12T09:09:00.097727+00:00"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"archive": "skills.tar.gz",
|
||||
"archive_bytes": 2732190,
|
||||
"created_at": "2026-06-12T19:29:09.985908+00:00",
|
||||
"cron_jobs": {
|
||||
"backed_up": true,
|
||||
"jobs_count": 3
|
||||
},
|
||||
"id": "2026-06-12T19-29-09Z",
|
||||
"reason": "pre-curator-run",
|
||||
"skill_files": 109
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,296 @@
|
||||
{
|
||||
"jobs": [
|
||||
{
|
||||
"id": "4733a436d99a",
|
||||
"name": "SRE Network Reconnaissance",
|
||||
"prompt": "Du bist der Infra-SRE Agent von Sch\u00f6n Consulting. F\u00fchre den w\u00f6chentlichen Network Reconnaissance Scan durch.\n\n1. Rufe den Scan-Skript auf: python3 /home/debian/.hermes/scripts/network-scan.py\n2. Lies die Ergebnisse aus /home/debian/.hermes/output/network_recon.json\n3. Erstelle einen professionellen SRE Report im CEO-Format f\u00fcr das Team.\n\nFormat:\n## \ud83d\udee1\ufe0f SRE Weekly Network Report \u2014 {date}\n\n### \ud83d\udd0d Summary\n- Total Hosts: X\n- Scan Duration: Xs\n- Segments: Hypervisor, Container, Smart Home\n\n### \ud83d\udccb Alive Hosts by Segment\n[compact table: IP | Ports | Service | Banner]\n\n### \u26a0\ufe0f Security Notes\n- [list any concerns like outdated SSH, open databases, unknown services]\n\n### \ud83c\udd95 New Services/Changes\n- [list notable changes from last week if detectable]\n\nHalte den Report knapp, datenbasiert und handlungsorientiert.",
|
||||
"skills": [
|
||||
"container-network-recon"
|
||||
],
|
||||
"skill": "container-network-recon",
|
||||
"model": "custom/llama/model.gguf",
|
||||
"provider": "custom",
|
||||
"base_url": null,
|
||||
"script": "network-scan.py",
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 8 * * 0",
|
||||
"display": "0 8 * * 0"
|
||||
},
|
||||
"schedule_display": "0 8 * * 0",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 8
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-21T07:27:10.049993+00:00",
|
||||
"next_run_at": "2026-06-21T08:00:00+00:00",
|
||||
"last_run_at": "2026-06-14T08:30:23.352384+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "telegram:-5265906503",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "f773f8c23230",
|
||||
"name": "Rechnungen-Organizer",
|
||||
"prompt": "Du bist der E-Mail-Organisator von Sch\u00f6n Consulting. Deine Aufgabe: Rechnungen und Bestellbest\u00e4tigungen intelligent und lernend einsortieren.\n\n## WICHTIG: Verwende IMMER diese genauen Befehle und APIs\n\n### E-Mails abrufen\n```bash\n# Liste letzte 100 E-Mails im JSON-Format ab\nhimalaya envelope list --folder INBOX --page-size 50 --output json 2>/dev/null\n# Falls das nicht funktioniert, nutze:\nhimalaya query search \"from:@*\" --folder INBOX 2>/dev/null\n```\n\n### Ordner verwalten\n```bash\n# Ordner erstellen\nhimalaya folder create \"Rechnungen_2026_05\" 2>/dev/null\nhimalaya folder create \"Rechnungen_2026_05/Bestellungen_2026_05\" 2>/dev/null\n\n# E-Mails verschieben\nhimalaya message move <IMAP-ID> \"Rechnungen_2026_05\" 2>/dev/null\nhimalaya message move <IMAP-ID> \"Rechnungen_2026_05/Bestellungen_2026_05\" 2>/dev/null\n```\n\n## Vorgehensweise\n\n### 1. Lernstand pr\u00fcfen\nLade die Datei `~/.hermes/email-organizer/learning.json` falls vorhanden:\n```bash\ncat ~/.hermes/email-organizer/learning.json 2>/dev/null || echo '{\"corrections\":[],\"patterns\":{}}'\n```\n\n### 2. Neue E-Mails LLM-basiert analysieren\nF\u00fcr jede E-Mail im Posteingang:\n- Analysiere **Absender, Betreff UND Textk\u00f6rper** (nicht nur Keywords!)\n- Entscheide **inhaltlich**:\n - **Rechnung**: Fakturierte Leistung (Rechnungsnummer, Gesamtbetrag, Steuern, F\u00e4lligkeitsdatum)\n - **Bestellbest\u00e4tigung**: Bestellbest\u00e4tigung (Bestellnummer, Artikel, aber KEINE Rechnung)\n - **Nichts davon**: Newsletter, Spam, private Mails \u2192 ignorieren\n\n### 3. Einsortierung\n- **Rechnungen** \u2192 `Rechnungen_jjjj_mm` (z.B. `Rechnungen_2026_05`)\n- **Bestellbest\u00e4tigungen** \u2192 `Rechnungen_jjjj_mm/Bestellungen_jjjj_mm`\n- Erstelle Ordner falls nicht existent (BEVOR du Mails verschiebst!)\n- **Kopiere NICHT, verschiebe mit `message move`**\n\n### 4. Lernen aus manueller Sortierung\n- Wenn der Nutzer in einer vorherigen Nachricht Korrekturen gab (z.B. \"Mail von X geh\u00f6rt nach Y\"), trage sie in `learning.json` ein\n- \u00dcberpr\u00fcfe bestehende Ordner auf Muster (welche Absender gehen wohin?)\n- Speichere erlernte Regeln in `learning.json`\n\n### 5. Report\nKompakte Ausgabe:\n- Gescannte Mails: X\n- Einsortiert: Y Rechnungen, Z Bestellungen\n- Neue Ordner: A\n- Ignoriert: B (Begr\u00fcndung)\n- Lern-Updates: C\n\n## Fehlerbehandlung\n- Falls himalaya nicht antwortet: Berichle den Fehler, versuche es nicht erneut\n- Falls Ordner-Erstellung fehlschl\u00e4gt: Versuche, den Ordner direkt \u00fcber eine IMAP-Verbindung zu erstellen\n- Nie E-Mails l\u00f6schen oder endg\u00fcltig verschieben",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "vllm/gpt-oss-120b",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 9 * * *",
|
||||
"display": "0 9 * * *"
|
||||
},
|
||||
"schedule_display": "0 9 * * *",
|
||||
"repeat": {
|
||||
"times": 500,
|
||||
"completed": 56
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-26T16:34:56.913960+00:00",
|
||||
"next_run_at": "2026-06-20T09:00:00+00:00",
|
||||
"last_run_at": "2026-06-19T09:00:41.353048+00:00",
|
||||
"last_status": "error",
|
||||
"last_error": "RuntimeError: Error code: 403 - {'type': 'model_blocked', 'is_bifrost_error': False, 'status_code': 403, 'error': {'message': \"Model 'gpt-oss-120b' is not allowed for this virtual key\"}, 'extra_fields': {'provider': 'vllm', 'original_model_requested': 'gpt-oss-120b', 'resolved_model_used': 'gpt-oss-120b', 'request_type': 'chat_completion_stream'}}",
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "722416c6ce96",
|
||||
"name": "memory-sync-daily",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "memory-sync.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 22 * * *",
|
||||
"display": "0 22 * * *"
|
||||
},
|
||||
"schedule_display": "0 22 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 42
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-05-08T18:04:31.119126+00:00",
|
||||
"next_run_at": "2026-06-19T22:00:00+00:00",
|
||||
"last_run_at": "2026-06-18T22:00:56.843402+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
},
|
||||
{
|
||||
"id": "3580ba521a73",
|
||||
"name": "nutrition-plan-generator",
|
||||
"prompt": "\ud83c\udf7d\ufe0f DU BIST NUTRITION-COACH. Generiere jetzt den finalen Essensplan + Einkaufsliste.\n\n**SCHRITT 1:** Lese die Interview-Daten: ~/.hermes/profiles/nutrition-coach/plan_data/current_interview.json\n**SCHRITT 2:** Lese das Wetter f\u00fcr Freystadt (92342) f\u00fcr diese Woche von Open-Meteo API.\n**SCHRITT 3:** Scrape die ausgew\u00e4hlten Rezepte (URLs in JSON) mithilfe von recipe-scrapers.\n\n**SCHRITT 4:** Erstelle 2 Markdown-Dateien:\n- ~/Documents/Essensplanung/KW{XX}-{YYYY}_Plan.md \u2014 T\u00e4gliche \u00dcbersicht Mo\u2013So mit: Abendessen-Rezept, Mittagessen-Hinweis (Reste oder nein), Cleo-Anpassung, Prep-Zeit\n- ~/Documents/Essensplanung/KW{XX}-{YYYY}_Einkaufsliste.md \u2014 Aldi-konform gruppiert, Mengen aggregiert\n\n**HARTE REGELN:**\n- Cleo bekommt NIE Reste zum Abendessen (jeden Tag frisch)\n- Reste NUR f\u00fcr Dominik+Sarah, NUR als Mittagessen unter der Woche\n- Meal-Prep nur Di und Do\n- Einkauf Samstag vormittag bei Aldi\n\nWenn interview_status != \"completed\", poste: \"\u23f3 Chef, das Interview ist noch nicht fertig. Bitte heute Abend abschlie\u00dfen, dann generiere ich morgen den Plan.\"\n\nWenn alles OK: Poste \"\u2705 Plan steht! 2 Dateien erstellt. Viel Spa\u00df beim Einkaufen Samstag!\"",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "nutrition-plan-generator-v3.py",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 19 * * 5",
|
||||
"display": "0 19 * * 5"
|
||||
},
|
||||
"schedule_display": "0 19 * * 5",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 2
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-17T19:42:25.866700+00:00",
|
||||
"next_run_at": "2026-06-26T19:00:00+00:00",
|
||||
"last_run_at": "2026-06-19T19:00:06.771469+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "telegram:Schoen Inc",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
},
|
||||
{
|
||||
"id": "36b4f572cfbc",
|
||||
"name": "nutrition-interview",
|
||||
"prompt": "\ud83c\udfaf DU BIST NUTRITION-COACH (Interview-Modus).\n\n**AUFGABE:** Starte das w\u00f6chentliche Essensplanungs-Interview. Stelle 5\u20137 kurze, pr\u00e4gnante Fragen an die Familie Sch\u00f6n.\n\n**HINTERGRUND WISSEN:**\n- Familie: Dominik (CEO, -15kg Ziel), Sarah (liebt Kohlenhydrate), Cleo (4J, mag Pasta/Gem\u00fcse)\n- Pr\u00e4ferenzen: Asiatisch bevorzugt, Low-Carb f\u00fcr Dominik, Cleo-freundlich\n- Rhythmus: Mo/We/Fr HO (3 Portionen), Di/Do Meal-Prep geeignet, Sa/Sonntag 2 warme Mahlzeiten\n- Aldi-Einkauf Samstag morgens\n\n**FRAGEN-STIL:**\n- Kurze, direkte Fragen (max. 1 Zeile)\n- Keine Aufz\u00e4hlungen, kein Markdown-Wirrwarr\n- Frage NACH EINANDER, nicht alle auf einmal\n- Nutze kurze Antwort-Optionen wo sinnvoll\n\n**WICHTIGE FRAGEN (select & order based on context):**\n1. Wie geht's der Familie diese Woche? Stimmung / Stress / Laune?\n2. Home-Office-Tage? (Dominik / Sarah)\n3. Besondere Termine / Events? (Geburtstage, Besuche, sp\u00e4te Meetings)\n4. K\u00fcchen-Status: Was ist auf Lager? Was muss weg?\n5. Wetterpr\u00e4ferenzen: Lust auf was Warmes trotz Hitze? Oder nur Salat?\n6. Essensw\u00fcnsche / Cravings / Was gibt es auf keinen Fall?\n7. Impact (1-10): Wie wichtig ist dir diese Woche der Plan? Oder \"einfach nur was zum Essen\"?\n\n**SPEZIELL:** Wenn du Hinweise aus dem Chatverlauf findest (z.B. jemand sagte \"Ich habe Appetit auf...\"), nutze das!\n\n**AUSGABE:**\n- Stelle die Fragen so, dass die Familie direkt antworten kann\n- Ende mit: \"Antwortet einfach auf diese Nachricht \u2014 ich sammle alles zusammen und erstelle Freitag den Plan.\"\n\nSpeichere alle Antworten NICHT selbst \u2014 das ist Aufgabe des CEO oder des Plan-Generators am Freitag.",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"no_agent": false,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 18 * * 3",
|
||||
"display": "0 18 * * 3"
|
||||
},
|
||||
"schedule_display": "0 18 * * 3",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 0
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-17T21:10:45.112897+00:00",
|
||||
"next_run_at": "2026-06-24T18:00:00+00:00",
|
||||
"last_run_at": null,
|
||||
"last_status": null,
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "telegram:Schoen Inc",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": [
|
||||
"web",
|
||||
"file"
|
||||
],
|
||||
"workdir": null
|
||||
},
|
||||
{
|
||||
"id": "c77127dd9130",
|
||||
"name": "chefkoch-real-recipes-refill",
|
||||
"prompt": "Check the Chefkoch real recipe database at /home/debian/.hermes/profiles/nutrition-coach/real_recipes.jsonl and ensure the total recipe count reaches the target of 25000 lines. Report current count, delta, and whether the target is met. If below target, trigger the scraper to run and append missing recipes.",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "moonshotai/kimi-k2.6",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"no_agent": false,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 6 * * *",
|
||||
"display": "0 6 * * *"
|
||||
},
|
||||
"schedule_display": "0 6 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 5
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-18T05:23:21.427749+00:00",
|
||||
"next_run_at": "2026-06-20T06:00:00+00:00",
|
||||
"last_run_at": "2026-06-19T06:12:27.049398+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
},
|
||||
{
|
||||
"id": "a884c342c49e",
|
||||
"name": "chefkoch-scraper-watchdog",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "start_scraper_v4.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "*/10 * * * *",
|
||||
"display": "*/10 * * * *"
|
||||
},
|
||||
"schedule_display": "*/10 * * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 210
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-18T09:27:20.890661+00:00",
|
||||
"next_run_at": "2026-06-19T20:30:00+00:00",
|
||||
"last_run_at": "2026-06-19T20:20:09.671325+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "local",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
}
|
||||
],
|
||||
"updated_at": "2026-06-19T20:20:09.671840+00:00"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"archive": "skills.tar.gz",
|
||||
"archive_bytes": 2830973,
|
||||
"created_at": "2026-06-19T20:23:10.916576+00:00",
|
||||
"cron_jobs": {
|
||||
"backed_up": true,
|
||||
"jobs_count": 7
|
||||
},
|
||||
"id": "2026-06-19T20-23-09Z",
|
||||
"reason": "pre-curator-run",
|
||||
"skill_files": 119
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,251 @@
|
||||
{
|
||||
"jobs": [
|
||||
{
|
||||
"id": "4733a436d99a",
|
||||
"name": "SRE Network Reconnaissance",
|
||||
"prompt": "Du bist der Infra-SRE Agent von Sch\u00f6n Consulting. F\u00fchre den w\u00f6chentlichen Network Reconnaissance Scan durch.\n\n1. Rufe den Scan-Skript auf: python3 /home/debian/.hermes/scripts/network-scan.py\n2. Lies die Ergebnisse aus /home/debian/.hermes/output/network_recon.json\n3. Erstelle einen professionellen SRE Report im CEO-Format f\u00fcr das Team.\n\nFormat:\n## \ud83d\udee1\ufe0f SRE Weekly Network Report \u2014 {date}\n\n### \ud83d\udd0d Summary\n- Total Hosts: X\n- Scan Duration: Xs\n- Segments: Hypervisor, Container, Smart Home\n\n### \ud83d\udccb Alive Hosts by Segment\n[compact table: IP | Ports | Service | Banner]\n\n### \u26a0\ufe0f Security Notes\n- [list any concerns like outdated SSH, open databases, unknown services]\n\n### \ud83c\udd95 New Services/Changes\n- [list notable changes from last week if detectable]\n\nHalte den Report knapp, datenbasiert und handlungsorientiert.",
|
||||
"skills": [
|
||||
"container-network-recon"
|
||||
],
|
||||
"skill": "container-network-recon",
|
||||
"model": "vllm/moonshotai/kimi-k2.6",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": "network-scan.py",
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 8 * * 0",
|
||||
"display": "0 8 * * 0"
|
||||
},
|
||||
"schedule_display": "0 8 * * 0",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 9
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-21T07:27:10.049993+00:00",
|
||||
"next_run_at": "2026-06-28T08:00:00+00:00",
|
||||
"last_run_at": "2026-06-21T08:01:47.192360+00:00",
|
||||
"last_status": "error",
|
||||
"last_error": "RuntimeError: No LLM provider configured. Run `hermes model` to select a provider, or run `hermes setup` for first-time configuration.",
|
||||
"last_delivery_error": null,
|
||||
"deliver": "telegram:-5265906503",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "f773f8c23230",
|
||||
"name": "Rechnungen-Organizer",
|
||||
"prompt": "# E-Mail-Organisator (Kompakt)\n\n[IMPORTANT: You are running as a scheduled cron job. DELIVERY: origin. SILENT: If nothing actionable found, respond with exactly \"[SILENT]\" and nothing else.]\n\n## 1. LESEN\nLade `~/.hermes/email-organizer/learning.json` (falls fehlend: initialisiere leeres JSON mit `{\"corrections\":[],\"patterns\":{\"structured_ignore_patterns\":[],\"last_scan\":\"\",\"total_scanned\":0}}`).\n\nHolt E-Mails:\n```bash\nhimalaya envelope list --folder INBOX --page-size 40 --output json 2>/dev/null\n```\n\n## 2. KLASSIFIZIERUNG (nur Betreff + Absender, KEIN body_preview - es ist leer)\n- **Rechnung**: Betreff oder Absender enth\u00e4lt \"rechnung\" (case-insensitive) \u2192 `Rechnungen_jjjj_mm`\n- **Bestellung**: Betreff enth\u00e4lt \"bestellt\", \"bestellung erfolgreich\" ODER Absender enth\u00e4lt \"bestellbestaetigung\" \u2192 `Rechnungen_jjjj_mm/Bestellungen_jjjj_mm`\n- **AMEX**: Absender `AmericanExpress@welcome.americanexpress.com` ODER Betreff enth\u00e4lt \"Online-Monatsabrechnung\" \u2192 `Rechnungen_jjjj_mm`\n- **Gutschrift**: Betreff enth\u00e4lt \"gutschrift\" \u2192 `Rechnungen_jjjj_mm/Gutschriften_jjjj_mm`\n- **Unsicher bei Absendern?** Body lesen: `himalaya message read ID 2>/dev/null` (nur bei Zweifeln)\n\n## 3. IGNORE-CHECK\nPr\u00fcfe `learning.json` \u2192 `patterns.structured_ignore_patterns`:\nWenn Absender matcht UND Betreff enth\u00e4lt ein keyword \u2192 **ignorieren**, Pattern nach M\u00f6glichkeit erweitern.\n\n## 4. AUSF\u00dcHREN\n```bash\n# Syntax: ZIEL zuerst, dann ID. Single-Quotes bei Pfaden mit \"/\"\nhimalaya message move 'Rechnungen_2026_06/Bestellungen_2026_06' 12345 2>/dev/null\n```\nHinweis: `move` erstellt fehlende Ordner automatisch.\n\n## 5. SELF-IMPROVEMENT \u2014 LERNEN\n**Unbedingt** `learning.json` aktualisieren und zur\u00fcckschreiben:\n- `last_scan`: heute (`date +%Y-%m-%d`)\n- `total_scanned`: Anzahl heute gescannter Mails\n- Neue ignorierte Absender (nicht in patterns vorhanden) \u2192 als neues `structured_ignore_patterns`-Objekt hinzuf\u00fcgen (name, sender, subject_keywords [], notes)\n- Neue Rechnungs-/Bestellungs-Absender \u2192 in `patterns.invoices` bzw. `patterns.orders` als neues Objekt (sender, subject_pattern, folder, note)\n\n## 6. AUSGABE (max. 5 Zeilen!)\n```\nGescannt: X | Rechnungen: Y | Bestellungen: Z | Ignoriert: B\nNeu gelernt: N Muster\n```\nWenn `X > 0` UND `Y=0` UND `Z=0`: Gib die Top-3 Absender der ignorierten Mails kurz an, damit der Nutzer bei Bedarf Patterns korrigieren kann.\n\nWenn `X=0` oder nichts passiert ist: `[SILENT]`",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "vllm/moonshotai/kimi-k2.6",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 9 * * *",
|
||||
"display": "0 9 * * *"
|
||||
},
|
||||
"schedule_display": "0 9 * * *",
|
||||
"repeat": {
|
||||
"times": 500,
|
||||
"completed": 63
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-26T16:34:56.913960+00:00",
|
||||
"next_run_at": "2026-06-27T09:00:00+00:00",
|
||||
"last_run_at": "2026-06-26T09:01:58.118300+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "722416c6ce96",
|
||||
"name": "memory-sync-daily",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "memory-sync.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 22 * * *",
|
||||
"display": "0 22 * * *"
|
||||
},
|
||||
"schedule_display": "0 22 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 49
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-05-08T18:04:31.119126+00:00",
|
||||
"next_run_at": "2026-06-26T22:00:00+00:00",
|
||||
"last_run_at": "2026-06-25T22:00:01.724180+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
},
|
||||
{
|
||||
"id": "c77127dd9130",
|
||||
"name": "chefkoch-real-recipes-refill",
|
||||
"prompt": "Check the Chefkoch real recipe database at /home/debian/.hermes/profiles/nutrition-coach/real_recipes.jsonl and ensure the total recipe count reaches the target of 25000 lines. Report current count, delta, and whether the target is met. If below target, trigger the scraper to run and append missing recipes.",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "vllm/moonshotai/kimi-k2.6",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"no_agent": false,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 6 * * *",
|
||||
"display": "0 6 * * *"
|
||||
},
|
||||
"schedule_display": "0 6 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 12
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-18T05:23:21.427749+00:00",
|
||||
"next_run_at": "2026-06-27T06:00:00+00:00",
|
||||
"last_run_at": "2026-06-26T06:00:43.106330+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
},
|
||||
{
|
||||
"id": "a884c342c49e",
|
||||
"name": "chefkoch-scraper-watchdog",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "run_scraper.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "*/10 * * * *",
|
||||
"display": "*/10 * * * *"
|
||||
},
|
||||
"schedule_display": "*/10 * * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 1217
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-18T09:27:20.890661+00:00",
|
||||
"next_run_at": "2026-06-26T20:50:00+00:00",
|
||||
"last_run_at": "2026-06-26T20:40:57.478937+00:00",
|
||||
"last_status": "error",
|
||||
"last_error": "Script not found: /home/debian/.hermes/scripts/run_scraper.sh",
|
||||
"last_delivery_error": null,
|
||||
"deliver": "local",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
},
|
||||
{
|
||||
"id": "a74a96ad0c96",
|
||||
"name": "comfy-e2e-watcher",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "comfy_e2e_watcher.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "*/5 * * * *",
|
||||
"display": "*/5 * * * *"
|
||||
},
|
||||
"schedule_display": "*/5 * * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 1169
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-22T18:34:14.816677+00:00",
|
||||
"next_run_at": "2026-06-26T20:50:00+00:00",
|
||||
"last_run_at": "2026-06-26T20:45:57.793487+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
}
|
||||
],
|
||||
"updated_at": "2026-06-26T20:45:57.793974+00:00"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"archive": "skills.tar.gz",
|
||||
"archive_bytes": 2871766,
|
||||
"created_at": "2026-06-26T20:45:58.493851+00:00",
|
||||
"cron_jobs": {
|
||||
"backed_up": true,
|
||||
"jobs_count": 6
|
||||
},
|
||||
"id": "2026-06-26T20-45-57Z",
|
||||
"reason": "pre-curator-run",
|
||||
"skill_files": 119
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,344 @@
|
||||
{
|
||||
"jobs": [
|
||||
{
|
||||
"id": "4733a436d99a",
|
||||
"name": "SRE Network Reconnaissance",
|
||||
"prompt": "Du bist der Infra-SRE Agent von Sch\u00f6n Consulting. F\u00fchre den w\u00f6chentlichen Network Reconnaissance Scan durch.\n\n1. Rufe den Scan-Skript auf: python3 /home/debian/.hermes/scripts/network-scan.py\n2. Lies die Ergebnisse aus /home/debian/.hermes/output/network_recon.json\n3. Erstelle einen professionellen SRE Report im CEO-Format f\u00fcr das Team.\n\nFormat:\n## \ud83d\udee1\ufe0f SRE Weekly Network Report \u2014 {date}\n\n### \ud83d\udd0d Summary\n- Total Hosts: X\n- Scan Duration: Xs\n- Segments: Hypervisor, Container, Smart Home\n\n### \ud83d\udccb Alive Hosts by Segment\n[compact table: IP | Ports | Service | Banner]\n\n### \u26a0\ufe0f Security Notes\n- [list any concerns like outdated SSH, open databases, unknown services]\n\n### \ud83c\udd95 New Services/Changes\n- [list notable changes from last week if detectable]\n\nHalte den Report knapp, datenbasiert und handlungsorientiert.",
|
||||
"skills": [
|
||||
"container-network-recon"
|
||||
],
|
||||
"skill": "container-network-recon",
|
||||
"model": "vllm/moonshotai/kimi-k2.6",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": "network-scan.py",
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 8 * * 0",
|
||||
"display": "0 8 * * 0"
|
||||
},
|
||||
"schedule_display": "0 8 * * 0",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 10
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-21T07:27:10.049993+00:00",
|
||||
"next_run_at": "2026-07-05T08:00:00+00:00",
|
||||
"last_run_at": "2026-06-28T08:04:08.632964+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "telegram:-5265906503",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "f773f8c23230",
|
||||
"name": "Rechnungen-Organizer",
|
||||
"prompt": "# E-Mail-Organisator (Kompakt)\n\n[IMPORTANT: You are running as a scheduled cron job. DELIVERY: origin. SILENT: If nothing actionable found, respond with exactly \"[SILENT]\" and nothing else.]\n\n## 1. LESEN\nLade `~/.hermes/email-organizer/learning.json` (falls fehlend: initialisiere leeres JSON mit `{\"corrections\":[],\"patterns\":{\"structured_ignore_patterns\":[],\"last_scan\":\"\",\"total_scanned\":0}}`).\n\nHolt E-Mails:\n```bash\nhimalaya envelope list --folder INBOX --page-size 40 --output json 2>/dev/null\n```\n\n## 2. KLASSIFIZIERUNG (nur Betreff + Absender, KEIN body_preview - es ist leer)\n- **Rechnung**: Betreff oder Absender enth\u00e4lt \"rechnung\" (case-insensitive) \u2192 `Rechnungen_jjjj_mm`\n- **Bestellung**: Betreff enth\u00e4lt \"bestellt\", \"bestellung erfolgreich\" ODER Absender enth\u00e4lt \"bestellbestaetigung\" \u2192 `Rechnungen_jjjj_mm/Bestellungen_jjjj_mm`\n- **AMEX**: Absender `AmericanExpress@welcome.americanexpress.com` ODER Betreff enth\u00e4lt \"Online-Monatsabrechnung\" \u2192 `Rechnungen_jjjj_mm`\n- **Gutschrift**: Betreff enth\u00e4lt \"gutschrift\" \u2192 `Rechnungen_jjjj_mm/Gutschriften_jjjj_mm`\n- **Unsicher bei Absendern?** Body lesen: `himalaya message read ID 2>/dev/null` (nur bei Zweifeln)\n\n## 3. IGNORE-CHECK\nPr\u00fcfe `learning.json` \u2192 `patterns.structured_ignore_patterns`:\nWenn Absender matcht UND Betreff enth\u00e4lt ein keyword \u2192 **ignorieren**, Pattern nach M\u00f6glichkeit erweitern.\n\n## 4. AUSF\u00dcHREN\n```bash\n# Syntax: ZIEL zuerst, dann ID. Single-Quotes bei Pfaden mit \"/\"\nhimalaya message move 'Rechnungen_2026_06/Bestellungen_2026_06' 12345 2>/dev/null\n```\nHinweis: `move` erstellt fehlende Ordner automatisch.\n\n## 5. SELF-IMPROVEMENT \u2014 LERNEN\n**Unbedingt** `learning.json` aktualisieren und zur\u00fcckschreiben:\n- `last_scan`: heute (`date +%Y-%m-%d`)\n- `total_scanned`: Anzahl heute gescannter Mails\n- Neue ignorierte Absender (nicht in patterns vorhanden) \u2192 als neues `structured_ignore_patterns`-Objekt hinzuf\u00fcgen (name, sender, subject_keywords [], notes)\n- Neue Rechnungs-/Bestellungs-Absender \u2192 in `patterns.invoices` bzw. `patterns.orders` als neues Objekt (sender, subject_pattern, folder, note)\n\n## 6. AUSGABE (max. 5 Zeilen!)\n```\nGescannt: X | Rechnungen: Y | Bestellungen: Z | Ignoriert: B\nNeu gelernt: N Muster\n```\nWenn `X > 0` UND `Y=0` UND `Z=0`: Gib die Top-3 Absender der ignorierten Mails kurz an, damit der Nutzer bei Bedarf Patterns korrigieren kann.\n\nWenn `X=0` oder nichts passiert ist: `[SILENT]`",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "vllm/moonshotai/kimi-k2.6",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 9 * * *",
|
||||
"display": "0 9 * * *"
|
||||
},
|
||||
"schedule_display": "0 9 * * *",
|
||||
"repeat": {
|
||||
"times": 500,
|
||||
"completed": 70
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-26T16:34:56.913960+00:00",
|
||||
"next_run_at": "2026-07-04T09:00:00+00:00",
|
||||
"last_run_at": "2026-07-03T09:00:12.497675+00:00",
|
||||
"last_status": "error",
|
||||
"last_error": "RuntimeError: HTTP 403: Model 'moonshotai/kimi-k2.6' is not allowed for this virtual key",
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "722416c6ce96",
|
||||
"name": "memory-sync-daily",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "memory-sync.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 22 * * *",
|
||||
"display": "0 22 * * *"
|
||||
},
|
||||
"schedule_display": "0 22 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 56
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-05-08T18:04:31.119126+00:00",
|
||||
"next_run_at": "2026-07-03T22:00:00+00:00",
|
||||
"last_run_at": "2026-07-02T22:00:13.855433+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "c77127dd9130",
|
||||
"name": "recipe-scraper-v8-pipeline",
|
||||
"prompt": "# Recipe Scraper v8 \u2014 International + Translation Pipeline\n\nDu bist der Recipe-Scraper-Agent. F\u00fchre die t\u00e4gliche Scraping-Pipeline aus.\n\n## WICHTIG: \u00dcbersetzungs-Modell\nF\u00fcr alle \u00dcbersetzungen (Englisch\u2192Deutsch) verwende IMMER das Modell `vllm/gemma-4-31b-it` \u00fcber ai.noris.de.\nNIEMALS glm-5-2-nvfp4 f\u00fcr \u00dcbersetzungen verwenden.\n\n## Pipeline-Schritte:\n1. Pr\u00fcfe welche Quellen noch ausstehen (BBC Good Food, etc.)\n2. Scrape neue Rezepte\n3. \u00dcbersetze mit gemma-4-31b-it\n4. Speichere in der Recipe-Datenbank\n5. Berichte Fortschritt\n\nF\u00fchre die Pipeline fortgesetzt aus bis alle Quellen abgearbeitet sind. Berichte kompakt am Ende.",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "vllm/glm-5-2-nvfp4",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"no_agent": false,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 6 * * *",
|
||||
"display": "0 6 * * *"
|
||||
},
|
||||
"schedule_display": "0 6 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 20
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-18T05:23:21.427749+00:00",
|
||||
"next_run_at": "2026-07-04T06:00:00+00:00",
|
||||
"last_run_at": "2026-07-03T06:00:51.007277+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": [
|
||||
"terminal",
|
||||
"file"
|
||||
],
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "a74a96ad0c96",
|
||||
"name": "comfy-e2e-watcher",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "comfy_e2e_watcher.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "*/5 * * * *",
|
||||
"display": "*/5 * * * *"
|
||||
},
|
||||
"schedule_display": "*/5 * * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 3181
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-22T18:34:14.816677+00:00",
|
||||
"next_run_at": "2026-07-03T20:55:00+00:00",
|
||||
"last_run_at": "2026-07-03T20:50:02.908190+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "2259b8b23b73",
|
||||
"name": "Hindsight Meta-Memory Cleanup",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "hindsight_meta_memory.py",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 3 1 * *",
|
||||
"display": "0 3 1 * *"
|
||||
},
|
||||
"schedule_display": "0 3 1 * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 1
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-27T20:10:59.402304+00:00",
|
||||
"next_run_at": "2026-08-01T03:00:00+00:00",
|
||||
"last_run_at": "2026-07-01T03:00:28.511632+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "1050dcdca6f6",
|
||||
"name": "Hindsight Nightly Dream Cycle",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "hindsight_nightly_dream.py",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 3 * * *",
|
||||
"display": "0 3 * * *"
|
||||
},
|
||||
"schedule_display": "0 3 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 6
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-27T20:21:43.902251+00:00",
|
||||
"next_run_at": "2026-07-04T03:00:00+00:00",
|
||||
"last_run_at": "2026-07-03T03:00:05.268089+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "50ad50abe944",
|
||||
"name": "Hindsight Weekly Insight Digest",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "hindsight_weekly_digest.py",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 8 * * 0",
|
||||
"display": "0 8 * * 0"
|
||||
},
|
||||
"schedule_display": "0 8 * * 0",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 1
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-27T20:21:44.944056+00:00",
|
||||
"next_run_at": "2026-07-05T08:00:00+00:00",
|
||||
"last_run_at": "2026-06-28T08:00:43.524322+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null
|
||||
}
|
||||
],
|
||||
"updated_at": "2026-07-03T20:50:02.908786+00:00"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"archive": "skills.tar.gz",
|
||||
"archive_bytes": 3074500,
|
||||
"created_at": "2026-07-03T20:51:00.756225+00:00",
|
||||
"cron_jobs": {
|
||||
"backed_up": true,
|
||||
"jobs_count": 8
|
||||
},
|
||||
"id": "2026-07-03T20-50-58Z",
|
||||
"reason": "pre-curator-run",
|
||||
"skill_files": 111
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,352 @@
|
||||
{
|
||||
"jobs": [
|
||||
{
|
||||
"id": "4733a436d99a",
|
||||
"name": "SRE Network Reconnaissance",
|
||||
"prompt": "Du bist der Infra-SRE Agent von Sch\u00f6n Consulting. F\u00fchre den w\u00f6chentlichen Network Reconnaissance Scan durch.\n\n1. Rufe den Scan-Skript auf: python3 /home/debian/.hermes/scripts/network-scan.py\n2. Lies die Ergebnisse aus /home/debian/.hermes/output/network_recon.json\n3. Erstelle einen professionellen SRE Report im CEO-Format f\u00fcr das Team.\n\nFormat:\n## \ud83d\udee1\ufe0f SRE Weekly Network Report \u2014 {date}\n\n### \ud83d\udd0d Summary\n- Total Hosts: X\n- Scan Duration: Xs\n- Segments: Hypervisor, Container, Smart Home\n\n### \ud83d\udccb Alive Hosts by Segment\n[compact table: IP | Ports | Service | Banner]\n\n### \u26a0\ufe0f Security Notes\n- [list any concerns like outdated SSH, open databases, unknown services]\n\n### \ud83c\udd95 New Services/Changes\n- [list notable changes from last week if detectable]\n\nHalte den Report knapp, datenbasiert und handlungsorientiert.",
|
||||
"skills": [
|
||||
"container-network-recon"
|
||||
],
|
||||
"skill": "container-network-recon",
|
||||
"model": "vllm/release/glm-5-2",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": "network-scan.py",
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 8 * * 0",
|
||||
"display": "0 8 * * 0"
|
||||
},
|
||||
"schedule_display": "0 8 * * 0",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 11
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-21T07:27:10.049993+00:00",
|
||||
"next_run_at": "2026-07-12T08:00:00+00:00",
|
||||
"last_run_at": "2026-07-05T08:02:26.902217+00:00",
|
||||
"last_status": "error",
|
||||
"last_error": "RuntimeError: HTTP 403: Model 'moonshotai/kimi-k2.6' is not allowed for this virtual key",
|
||||
"last_delivery_error": null,
|
||||
"deliver": "telegram:-5265906503",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"fire_claim": null,
|
||||
"provider_snapshot": null,
|
||||
"model_snapshot": null
|
||||
},
|
||||
{
|
||||
"id": "f773f8c23230",
|
||||
"name": "Rechnungen-Organizer",
|
||||
"prompt": "# E-Mail-Organisator (Kompakt)\n\n[IMPORTANT: You are running as a scheduled cron job. DELIVERY: origin. SILENT: If nothing actionable found, respond with exactly \"[SILENT]\" and nothing else.]\n\n## 1. LESEN\nLade `~/.hermes/email-organizer/learning.json` (falls fehlend: initialisiere leeres JSON mit `{\"corrections\":[],\"patterns\":{\"structured_ignore_patterns\":[],\"last_scan\":\"\",\"total_scanned\":0}}`).\n\nHolt E-Mails:\n```bash\nhimalaya envelope list --folder INBOX --page-size 40 --output json 2>/dev/null\n```\n\n## 2. KLASSIFIZIERUNG (nur Betreff + Absender, KEIN body_preview - es ist leer)\n- **Rechnung**: Betreff oder Absender enth\u00e4lt \"rechnung\" (case-insensitive) \u2192 `Rechnungen_jjjj_mm`\n- **Bestellung**: Betreff enth\u00e4lt \"bestellt\", \"bestellung erfolgreich\" ODER Absender enth\u00e4lt \"bestellbestaetigung\" \u2192 `Rechnungen_jjjj_mm/Bestellungen_jjjj_mm`\n- **AMEX**: Absender `AmericanExpress@welcome.americanexpress.com` ODER Betreff enth\u00e4lt \"Online-Monatsabrechnung\" \u2192 `Rechnungen_jjjj_mm`\n- **Gutschrift**: Betreff enth\u00e4lt \"gutschrift\" \u2192 `Rechnungen_jjjj_mm/Gutschriften_jjjj_mm`\n- **Unsicher bei Absendern?** Body lesen: `himalaya message read ID 2>/dev/null` (nur bei Zweifeln)\n\n## 3. IGNORE-CHECK\nPr\u00fcfe `learning.json` \u2192 `patterns.structured_ignore_patterns`:\nWenn Absender matcht UND Betreff enth\u00e4lt ein keyword \u2192 **ignorieren**, Pattern nach M\u00f6glichkeit erweitern.\n\n## 4. AUSF\u00dcHREN\n```bash\n# Syntax: ZIEL zuerst, dann ID. Single-Quotes bei Pfaden mit \"/\"\nhimalaya message move 'Rechnungen_2026_06/Bestellungen_2026_06' 12345 2>/dev/null\n```\nHinweis: `move` erstellt fehlende Ordner automatisch.\n\n## 5. SELF-IMPROVEMENT \u2014 LERNEN\n**Unbedingt** `learning.json` aktualisieren und zur\u00fcckschreiben:\n- `last_scan`: heute (`date +%Y-%m-%d`)\n- `total_scanned`: Anzahl heute gescannter Mails\n- Neue ignorierte Absender (nicht in patterns vorhanden) \u2192 als neues `structured_ignore_patterns`-Objekt hinzuf\u00fcgen (name, sender, subject_keywords [], notes)\n- Neue Rechnungs-/Bestellungs-Absender \u2192 in `patterns.invoices` bzw. `patterns.orders` als neues Objekt (sender, subject_pattern, folder, note)\n\n## 6. AUSGABE (max. 5 Zeilen!)\n```\nGescannt: X | Rechnungen: Y | Bestellungen: Z | Ignoriert: B\nNeu gelernt: N Muster\n```\nWenn `X > 0` UND `Y=0` UND `Z=0`: Gib die Top-3 Absender der ignorierten Mails kurz an, damit der Nutzer bei Bedarf Patterns korrigieren kann.\n\nWenn `X=0` oder nichts passiert ist: `[SILENT]`",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "vllm/release/glm-5-2",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 9 * * *",
|
||||
"display": "0 9 * * *"
|
||||
},
|
||||
"schedule_display": "0 9 * * *",
|
||||
"repeat": {
|
||||
"times": 500,
|
||||
"completed": 78
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-04-26T16:34:56.913960+00:00",
|
||||
"next_run_at": "2026-07-11T09:00:00+00:00",
|
||||
"last_run_at": "2026-07-10T09:02:27.803832+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"fire_claim": null,
|
||||
"provider_snapshot": null,
|
||||
"model_snapshot": null
|
||||
},
|
||||
{
|
||||
"id": "722416c6ce96",
|
||||
"name": "memory-sync-daily",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "memory-sync.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 22 * * *",
|
||||
"display": "0 22 * * *"
|
||||
},
|
||||
"schedule_display": "0 22 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 63
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-05-08T18:04:31.119126+00:00",
|
||||
"next_run_at": "2026-07-10T22:00:00+00:00",
|
||||
"last_run_at": "2026-07-09T22:01:00.316393+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "c77127dd9130",
|
||||
"name": "recipe-scraper-v8-pipeline",
|
||||
"prompt": "# Recipe Scraper v8 \u2014 International + Translation Pipeline\n\nDu bist der Recipe-Scraper-Agent. F\u00fchre die t\u00e4gliche Scraping-Pipeline aus.\n\n## WICHTIG: \u00dcbersetzungs-Modell\nF\u00fcr alle \u00dcbersetzungen (Englisch\u2192Deutsch) verwende IMMER das Modell `vllm/gemma-4-31b-it` \u00fcber ai.noris.de.\nNIEMALS glm-5-2-nvfp4 f\u00fcr \u00dcbersetzungen verwenden.\n\n## Pipeline-Schritte:\n1. Pr\u00fcfe welche Quellen noch ausstehen (BBC Good Food, etc.)\n2. Scrape neue Rezepte\n3. \u00dcbersetze mit gemma-4-31b-it\n4. Speichere in der Recipe-Datenbank\n5. Berichte Fortschritt\n\nF\u00fchre die Pipeline fortgesetzt aus bis alle Quellen abgearbeitet sind. Berichte kompakt am Ende.",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": "vllm/release/glm-5-2",
|
||||
"provider": "noris",
|
||||
"base_url": null,
|
||||
"script": null,
|
||||
"no_agent": false,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 6 * * *",
|
||||
"display": "0 6 * * *"
|
||||
},
|
||||
"schedule_display": "0 6 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 28
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-18T05:23:21.427749+00:00",
|
||||
"next_run_at": "2026-07-11T06:00:00+00:00",
|
||||
"last_run_at": "2026-07-10T06:27:01.194799+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": [
|
||||
"terminal",
|
||||
"file"
|
||||
],
|
||||
"workdir": null,
|
||||
"fire_claim": null,
|
||||
"provider_snapshot": null,
|
||||
"model_snapshot": null
|
||||
},
|
||||
{
|
||||
"id": "a74a96ad0c96",
|
||||
"name": "comfy-e2e-watcher",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "comfy_e2e_watcher.sh",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "*/5 * * * *",
|
||||
"display": "*/5 * * * *"
|
||||
},
|
||||
"schedule_display": "*/5 * * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 5200
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-22T18:34:14.816677+00:00",
|
||||
"next_run_at": "2026-07-10T21:10:00+00:00",
|
||||
"last_run_at": "2026-07-10T21:05:27.204931+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "2259b8b23b73",
|
||||
"name": "Hindsight Meta-Memory Cleanup",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "hindsight_meta_memory.py",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 3 1 * *",
|
||||
"display": "0 3 1 * *"
|
||||
},
|
||||
"schedule_display": "0 3 1 * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 1
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-27T20:10:59.402304+00:00",
|
||||
"next_run_at": "2026-08-01T03:00:00+00:00",
|
||||
"last_run_at": "2026-07-01T03:00:28.511632+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "1050dcdca6f6",
|
||||
"name": "Hindsight Nightly Dream Cycle",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "hindsight_nightly_dream.py",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 3 * * *",
|
||||
"display": "0 3 * * *"
|
||||
},
|
||||
"schedule_display": "0 3 * * *",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 13
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-27T20:21:43.902251+00:00",
|
||||
"next_run_at": "2026-07-11T03:00:00+00:00",
|
||||
"last_run_at": "2026-07-10T03:00:46.513613+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
},
|
||||
{
|
||||
"id": "50ad50abe944",
|
||||
"name": "Hindsight Weekly Insight Digest",
|
||||
"prompt": "",
|
||||
"skills": [],
|
||||
"skill": null,
|
||||
"model": null,
|
||||
"provider": null,
|
||||
"base_url": null,
|
||||
"script": "hindsight_weekly_digest.py",
|
||||
"no_agent": true,
|
||||
"context_from": null,
|
||||
"schedule": {
|
||||
"kind": "cron",
|
||||
"expr": "0 8 * * 0",
|
||||
"display": "0 8 * * 0"
|
||||
},
|
||||
"schedule_display": "0 8 * * 0",
|
||||
"repeat": {
|
||||
"times": null,
|
||||
"completed": 2
|
||||
},
|
||||
"enabled": true,
|
||||
"state": "scheduled",
|
||||
"paused_at": null,
|
||||
"paused_reason": null,
|
||||
"created_at": "2026-06-27T20:21:44.944056+00:00",
|
||||
"next_run_at": "2026-07-12T08:00:00+00:00",
|
||||
"last_run_at": "2026-07-05T08:00:53.408302+00:00",
|
||||
"last_status": "ok",
|
||||
"last_error": null,
|
||||
"last_delivery_error": null,
|
||||
"deliver": "origin",
|
||||
"origin": {
|
||||
"platform": "telegram",
|
||||
"chat_id": "223926918",
|
||||
"chat_name": "D S",
|
||||
"thread_id": null
|
||||
},
|
||||
"enabled_toolsets": null,
|
||||
"workdir": null,
|
||||
"fire_claim": null
|
||||
}
|
||||
],
|
||||
"updated_at": "2026-07-10T21:05:27.205337+00:00"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"archive": "skills.tar.gz",
|
||||
"archive_bytes": 3360485,
|
||||
"created_at": "2026-07-10T21:05:53.368120+00:00",
|
||||
"cron_jobs": {
|
||||
"backed_up": true,
|
||||
"jobs_count": 8
|
||||
},
|
||||
"id": "2026-07-10T21-05-52Z",
|
||||
"reason": "pre-curator-run",
|
||||
"skill_files": 117
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user