Skip to content
Diese Seite wurde mit KI-Unterstützung erstellt und übersetzt. Falls Ihnen Ungenauigkeiten auffallen, helfen Sie gerne bei der Verbesserung. Auf GitHub bearbeiten

Cron-Werkzeuge ​

PRX bietet neun Werkzeuge fur zeitbasierte Aufgabenautomatisierung, die von traditioneller Cron-Job-Verwaltung bis zur fortgeschrittenen Xin-Planungsengine reichen. Diese Werkzeuge ermoglichen es dem Agenten, geplante Aufgaben zu erstellen, den Job-Verlauf einzusehen, manuelle Ausfuhrungen auszulosen und Hintergrundoperationen nach wiederkehrenden Zeitplanen zu orchestrieren.

Die Cron-Werkzeuge sind in zwei Systeme unterteilt: das Cron-Subsystem fur Standard-geplante Jobs mit Cron-Ausdrucken und die Xin-Engine fur fortgeschrittene Aufgabenplanung mit Abhangigkeitsketten, bedingter Ausfuhrung und Integration mit der Selbstevolutions-Pipeline.

Alle Cron- und Planungs-Werkzeuge sind in der all_tools()-Registry registriert und verfugbar, wann immer der Daemon lauft.

Konfiguration ​

Cron-System ​

toml
[cron]
enabled = true
timezone = "UTC"           # Zeitzone fur Cron-Ausdrucke

# Eingebaute geplante Aufgaben definieren
[[cron.tasks]]
name = "daily-report"
schedule = "0 9 * * *"     # Jeden Tag um 09:00 UTC
action = "agent"
prompt = "Generate a daily summary report and send it to the user."

[[cron.tasks]]
name = "memory-cleanup"
schedule = "0 3 * * *"     # Jeden Tag um 03:00 UTC
action = "agent"
prompt = "Run memory hygiene: archive old daily entries and compact core memories."

[[cron.tasks]]
name = "repo-check"
schedule = "*/30 * * * *"  # Alle 30 Minuten
action = "shell"
command = "cd /home/user/project && git fetch --all"

Xin-Engine ​

toml
[xin]
enabled = true
interval_minutes = 5            # Tick-Intervall in Minuten (Minimum 1)
max_concurrent = 4              # Maximale gleichzeitige Aufgabenausfuhrungen pro Tick
max_tasks = 128                 # Maximale Gesamtanzahl von Aufgaben im Speicher
stale_timeout_minutes = 60      # Minuten, bevor eine laufende Aufgabe als veraltet markiert wird
builtin_tasks = true            # System-Aufgaben automatisch registrieren
evolution_integration = false   # Xin die Evolutions-/Fitness-Planung verwalten lassen

Werkzeug-Referenz ​

cron_add ​

Fugt einen neuen Cron-Job mit einem Cron-Ausdruck, Befehl oder Prompt und optionaler Beschreibung hinzu.

json
{
  "name": "cron_add",
  "arguments": {
    "name": "backup-workspace",
    "schedule": "0 2 * * *",
    "action": "shell",
    "command": "tar czf /tmp/workspace-$(date +%Y%m%d).tar.gz /home/user/workspace",
    "description": "Daily workspace backup at 2 AM"
  }
}
ParameterTypErforderlichStandardBeschreibung
namestringJa--Eindeutiger Name fur den Cron-Job
schedulestringJa--Cron-Ausdruck (5-Felder: Minute Stunde Tag Monat Wochentag)
actionstringJa--Aktionstyp: "shell" (Befehl ausfuhren) oder "agent" (Agenten-Prompt ausfuhren)
commandstringBedingt--Shell-Befehl (erforderlich wenn action = "shell")
promptstringBedingt--Agenten-Prompt (erforderlich wenn action = "agent")
descriptionstringNein--Menschenlesbare Beschreibung

cron_list ​

Listet alle registrierten Cron-Jobs mit ihren Zeitplanen, Status und nachster Ausfuhrungszeit auf.

json
{
  "name": "cron_list",
  "arguments": {}
}

Keine Parameter erforderlich. Gibt eine Tabelle aller Cron-Jobs zuruck.

cron_remove ​

Entfernt einen Cron-Job anhand seines Namens oder seiner ID.

json
{
  "name": "cron_remove",
  "arguments": {
    "name": "backup-workspace"
  }
}
ParameterTypErforderlichStandardBeschreibung
namestringJa--Name oder ID des zu entfernenden Cron-Jobs

cron_update ​

Aktualisiert den Zeitplan, Befehl oder die Einstellungen eines bestehenden Cron-Jobs.

json
{
  "name": "cron_update",
  "arguments": {
    "name": "backup-workspace",
    "schedule": "0 4 * * *",
    "description": "Daily workspace backup at 4 AM (shifted)"
  }
}
ParameterTypErforderlichStandardBeschreibung
namestringJa--Name des zu aktualisierenden Cron-Jobs
schedulestringNein--Neuer Cron-Ausdruck
commandstringNein--Neuer Shell-Befehl
promptstringNein--Neuer Agenten-Prompt
descriptionstringNein--Neue Beschreibung

cron_run ​

Lost einen Cron-Job sofort manuell aus, ausserhalb seines normalen Zeitplans.

json
{
  "name": "cron_run",
  "arguments": {
    "name": "daily-report"
  }
}
ParameterTypErforderlichStandardBeschreibung
namestringJa--Name des auszulosenden Cron-Jobs

cron_runs ​

Zeigt den Ausfuhrungsverlauf und Protokolle von Cron-Job-Laufen an. Zeigt vergangene Ausfuhrungen mit Zeitstempeln, Status und Ausgabe.

json
{
  "name": "cron_runs",
  "arguments": {
    "name": "daily-report",
    "limit": 10
  }
}
ParameterTypErforderlichStandardBeschreibung
namestringNein--Nach Job-Name filtern. Wenn weggelassen, werden alle letzten Laufe angezeigt.
limitintegerNein20Maximale Anzahl zuruckzugebender Verlaufseinträge

schedule ​

Plant eine einmalige oder wiederkehrende Aufgabe mit naturlichsprachlichen Zeitausdrucken. Dies ist eine hoherwertige Schnittstelle als rohe Cron-Ausdrucke.

json
{
  "name": "schedule",
  "arguments": {
    "when": "in 30 minutes",
    "action": "agent",
    "prompt": "Check if the deployment completed and report the status."
  }
}
ParameterTypErforderlichStandardBeschreibung
whenstringJa--Naturlichsprachlicher Zeitausdruck (z.B. "in 30 minutes", "tomorrow at 9am", "every Monday at 10:00")
actionstringJa--Aktionstyp: "shell" oder "agent"
commandstringBedingt--Shell-Befehl (fur "shell"-Aktion)
promptstringBedingt--Agenten-Prompt (fur "agent"-Aktion)

cron (Legacy) ​

Legacy-Cron-Einstiegspunkt fur Ruckwartskompatibilitat. Leitet basierend auf dem Aktionsargument zum entsprechenden Cron-Werkzeug weiter.

json
{
  "name": "cron",
  "arguments": {
    "action": "list"
  }
}

xin ​

Die Xin-Planungsengine fur fortgeschrittene Aufgabenautomatisierung mit Abhangigkeitsketten und bedingter Ausfuhrung.

json
{
  "name": "xin",
  "arguments": {
    "action": "status"
  }
}
ParameterTypErforderlichStandardBeschreibung
actionstringJa--Aktion: "status", "tasks", "run", "pause", "resume"

Cron-Ausdruck-Format ​

PRX verwendet standardmassige 5-Felder-Cron-Ausdrucke:

┌───────────── Minute (0-59)
│ ┌───────────── Stunde (0-23)
│ │ ┌───────────── Tag des Monats (1-31)
│ │ │ ┌───────────── Monat (1-12)
│ │ │ │ ┌───────────── Wochentag (0-7, 0 und 7 = Sonntag)
│ │ │ │ │
* * * * *

Beispiele:

AusdruckBeschreibung
0 9 * * *Jeden Tag um 9:00 Uhr
*/15 * * * *Alle 15 Minuten
0 9 * * 1-5Werktags um 9:00 Uhr
0 0 1 * *Erster Tag jedes Monats um Mitternacht
30 8,12,18 * * *Um 8:30, 12:30 und 18:30 taglich

Xin-Engine ​

Die Xin-Engine ist ein fortgeschrittener Aufgabenplaner, der uber einfaches Cron-Timing hinausgeht:

  • Abhangigkeitsketten: Aufgaben konnen von der erfolgreichen Fertigstellung anderer Aufgaben abhangen
  • Bedingte Ausfuhrung: Aufgaben werden nur ausgefuhrt, wenn bestimmte Bedingungen erfullt sind
  • Eingebaute Aufgaben: Systemwartungsaufgaben (Heartbeat, Gedachtnishygiene, Log-Rotation) werden automatisch registriert, wenn builtin_tasks = true
  • Evolutions-Integration: Wenn evolution_integration = true, verwaltet Xin den Selbstevolutions- und Fitness-Check-Zeitplan
  • Veraltungserkennung: Aufgaben, die langer als stale_timeout_minutes laufen, werden als veraltet markiert und konnen bereinigt werden
  • Gleichzeitige Ausfuhrung: Mehrere Aufgaben konnen parallel laufen, begrenzt durch max_concurrent

Verwendung ​

CLI-Cron-Verwaltung ​

bash
# Alle Cron-Jobs auflisten
prx cron list

# Einen neuen Cron-Job hinzufugen
prx cron add --name "check-updates" --schedule "0 */6 * * *" --action agent --prompt "Check for package updates"

# Einen Job manuell auslosen
prx cron run daily-report

# Ausfuhrungsverlauf anzeigen
prx cron runs --name daily-report --limit 5

# Einen Job entfernen
prx cron remove check-updates

Xin-Status ​

bash
# Xin-Engine-Status prufen
prx xin status

# Alle Xin-Aufgaben auflisten
prx xin tasks

Sicherheit ​

Shell-Befehl-Sandboxing ​

Cron-Jobs mit action = "shell" werden uber dieselbe Sandbox wie das shell-Werkzeug ausgefuhrt. Das konfigurierte Sandbox-Backend (Landlock, Firejail, Bubblewrap, Docker) gilt fur geplante Befehle.

Agenten-Prompt-Sicherheit ​

Cron-Jobs mit action = "agent" starten eine neue Agenten-Sitzung mit dem konfigurierten Prompt. Die Agenten-Sitzung erbt die Sicherheitsrichtlinien, Werkzeugbeschrankungen und Ressourcenlimits des Daemons.

Richtlinien-Engine ​

Cron-Werkzeuge unterliegen der Sicherheitsrichtlinien-Engine:

toml
[security.tool_policy.groups]
automation = "allow"

[security.tool_policy.tools]
cron_add = "supervised"    # Genehmigung zum Hinzufugen neuer Jobs erforderlich
cron_remove = "supervised" # Genehmigung zum Entfernen von Jobs erforderlich
cron_run = "allow"         # Manuelle Auslosungen erlauben

Audit-Protokollierung ​

Alle Cron-Operationen werden im Audit-Protokoll aufgezeichnet: Job-Erstellung, Modifikation, Loschung, manuelle Auslosungen und Ausfuhrungsergebnisse.

Ressourcenlimits ​

Geplante Aufgaben teilen sich die Ressourcenlimits des Daemons. Die Einstellung max_concurrent in der Xin-Engine verhindert Ressourcenerschopfung durch zu viele gleichzeitige Aufgaben.

Verwandte Seiten ​

Released under the Apache-2.0 License.