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

Sitzungen & Agenten

PRX bietet acht Werkzeuge fur Multi-Agenten-Orchestrierung, die es einem ubergeordneten Agenten ermoglichen, Kind-Agenten zu starten, Aufgaben an spezialisierte Agenten zu delegieren und gleichzeitige Sitzungen zu verwalten. Dies ist die Grundlage von PRXs paralleler Aufgabenzerlegungs-Architektur, bei der komplexe Aufgaben in Teilaufgaben zerlegt werden, die von unabhangigen Agenteninstanzen bearbeitet werden.

Die Sitzungs-Werkzeuge (sessions_spawn, sessions_send, sessions_list, sessions_history, session_status, subagents) verwalten den Lebenszyklus von Sub-Agenten-Sitzungen. Die Agenten-Delegations-Werkzeuge (delegate, agents_list) ermoglichen die Aufgabenweiterleitung an benannte Agenten mit eigenem Anbieter, Modell und Werkzeugkonfiguration.

Sitzungs-Werkzeuge sind in der all_tools()-Registry registriert und immer verfugbar. Die delegate- und agents_list-Werkzeuge werden bedingt nur registriert, wenn Agentendefinitionen in der Konfiguration existieren.

Konfiguration

Sub-Agenten-Parallelitat

toml
[agent.subagents]
max_concurrent = 4          # Maximale gleichzeitige Sub-Agenten
max_depth = 3               # Maximale Verschachtelungstiefe (Sub-Agenten, die Sub-Agenten starten)
max_total_spawns = 20       # Gesamtes Spawn-Budget pro Wurzelsitzung
child_timeout_secs = 300    # Timeout fur individuelle Kind-Ausfuhrung

Delegationsagenten-Definitionen

Benannte Agenten werden unter [agents.*]-Abschnitten definiert:

toml
[agents.researcher]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
system_prompt = "You are a research assistant. Find accurate, up-to-date information."
agentic = true
max_iterations = 10
allowed_tools = ["web_search_tool", "web_fetch", "file_read", "memory_store"]

[agents.coder]
provider = "openai"
model = "gpt-4o"
system_prompt = "You are a code generation specialist. Write clean, well-tested code."
agentic = true
max_iterations = 15
allowed_tools = ["shell", "file_read", "file_write", "git_operations"]

[agents.reviewer]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
system_prompt = "You are a code reviewer. Focus on correctness, security, and style."
agentic = true
max_iterations = 5
allowed_tools = ["file_read", "shell"]

Werkzeug-Referenz

sessions_spawn

Startet einen asynchronen Sub-Agenten, der im Hintergrund lauft. Gibt sofort eine Run-ID zuruck. Der ubergeordnete Agent wird automatisch benachrichtigt, wenn der Kind-Agent fertig ist.

json
{
  "name": "sessions_spawn",
  "arguments": {
    "task": "Research the latest Rust async runtime benchmarks and summarize the findings.",
    "action": "spawn"
  }
}
ParameterTypErforderlichStandardBeschreibung
taskstringJa--Aufgabenbeschreibung / System-Prompt fur den Sub-Agenten
actionstringNein"spawn"Aktion: "spawn", "history" (Protokoll anzeigen) oder "steer" (umlenken)
allowed_toolsarrayNeinWerkzeuge des ElternteilsTeilmenge der Werkzeuge, auf die der Sub-Agent zugreifen kann

sessions_send

Sendet eine Nachricht an eine laufende Sub-Agenten-Sitzung und ermoglicht interaktive Kommunikation zwischen Eltern- und Kind-Agent.

json
{
  "name": "sessions_send",
  "arguments": {
    "session_id": "run_abc123",
    "message": "Focus on performance comparisons, not API differences."
  }
}
ParameterTypErforderlichStandardBeschreibung
session_idstringJa--Die Run-ID des Ziel-Sub-Agenten
messagestringJa--Nachricht, die an den Sub-Agenten gesendet werden soll

sessions_list

Listet alle aktiven Sub-Agenten-Sitzungen mit ihrem Status, ihrer Aufgabenbeschreibung und der verstrichenen Zeit auf.

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

Keine Parameter erforderlich. Gibt eine Liste aktiver Sitzungen zuruck.

sessions_history

Zeigt das Gesprächsprotokoll eines Sub-Agenten-Laufs an, einschliesslich aller Werkzeugaufrufe und LLM-Antworten.

json
{
  "name": "sessions_history",
  "arguments": {
    "session_id": "run_abc123"
  }
}
ParameterTypErforderlichStandardBeschreibung
session_idstringJa--Die Run-ID, deren Verlauf abgerufen werden soll

session_status

Pruft den Status einer bestimmten Sitzung (laufend, abgeschlossen, fehlgeschlagen, Timeout).

json
{
  "name": "session_status",
  "arguments": {
    "session_id": "run_abc123"
  }
}
ParameterTypErforderlichStandardBeschreibung
session_idstringJa--Die zu prufende Run-ID

subagents

Verwaltet den Sub-Agenten-Pool -- laufende Sub-Agenten auflisten, stoppen oder inspizieren.

json
{
  "name": "subagents",
  "arguments": {
    "action": "list"
  }
}
ParameterTypErforderlichStandardBeschreibung
actionstringJa--Aktion: "list", "stop", "inspect"
session_idstringBedingt--Erforderlich fur "stop"- und "inspect"-Aktionen

agents_list

Listet alle konfigurierten Delegationsagenten mit ihren Modellen, Fahigkeiten und erlaubten Werkzeugen auf. Nur registriert, wenn [agents.*]-Abschnitte definiert sind.

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

Keine Parameter erforderlich. Gibt Agentendefinitionen aus der Konfiguration zuruck.

delegate

Delegiert eine Aufgabe an einen benannten Agenten mit eigenem Anbieter, Modell und Werkzeugsatz. Der Delegationsagent fuhrt eine isolierte agentische Schleife aus und gibt das Ergebnis zuruck.

json
{
  "name": "delegate",
  "arguments": {
    "agent": "researcher",
    "task": "Find the top 5 Rust web frameworks by GitHub stars in 2026."
  }
}
ParameterTypErforderlichStandardBeschreibung
agentstringJa--Name des konfigurierten Agenten (aus [agents.*])
taskstringJa--Aufgabenbeschreibung fur den Delegationsagenten

Verwendungsmuster

Parallele Recherche

Mehrere Sub-Agenten starten, um verschiedene Themen gleichzeitig zu recherchieren:

Eltern-Agent: Ich brauche einen Vergleich von 3 Datenbank-Engines fur unser Projekt.

  [sessions_spawn] task="Research PostgreSQL strengths, weaknesses, and use cases"
  [sessions_spawn] task="Research SQLite strengths, weaknesses, and use cases"
  [sessions_spawn] task="Research DuckDB strengths, weaknesses, and use cases"

  [wartet, bis alle drei abgeschlossen sind]
  [synthetisiert Ergebnisse in eine Vergleichstabelle]

Delegierte Code-Uberprufung

Spezialisierte Delegationsagenten fur bestimmte Aufgaben verwenden:

Eltern-Agent: Uberprufe diesen Pull-Request auf Sicherheitsprobleme.

  [delegate] agent="reviewer", task="Review the diff in /tmp/pr-42.patch for security vulnerabilities"

  [Reviewer-Agent lauft mit file_read- und shell-Werkzeugen]
  [gibt detaillierte Sicherheitsuberprufung zuruck]

Hierarchische Aufgabenzerlegung

Sub-Agenten konnen ihre eigenen Sub-Agenten starten (bis zu max_depth):

Eltern-Agent
  ├── Recherche-Agent
  │     ├── Web-Suche-Sub-Agent
  │     └── Dokumentenanalyse-Sub-Agent
  ├── Code-Generierungs-Agent
  └── Test-Agent

Sicherheit

Tiefen- und Parallelitats-Limits

PRX erzwingt harte Limits beim Sub-Agenten-Spawning, um Ressourcenerschopfung zu verhindern:

  • max_concurrent: Begrenzt gleichzeitig laufende Sub-Agenten (Standard: 4)
  • max_depth: Begrenzt die Verschachtelungstiefe (Standard: 3). Bei maximaler Tiefe wird das sessions_spawn-Werkzeug aus den verfugbaren Werkzeugen des Kind-Agenten entfernt.
  • max_total_spawns: Begrenzt die Gesamtzahl der Spawns pro Wurzelsitzung (Standard: 20)
  • child_timeout_secs: Beendet Sub-Agenten, die den Timeout uberschreiten (Standard: 300 Sekunden)

Werkzeugbeschrankungen

Sub-Agenten erben die Sandbox-Richtlinie des Elternteils, konnen aber einen eingeschrankten Werkzeugsatz haben:

json
{
  "name": "sessions_spawn",
  "arguments": {
    "task": "Search the web for information",
    "allowed_tools": ["web_search_tool", "web_fetch"]
  }
}

Delegationsagenten haben ihre Werkzeuge explizit in der Konfiguration definiert. Sie konnen nicht auf Werkzeuge ausserhalb ihrer allowed_tools-Liste zugreifen.

Anmeldedaten-Isolation

Delegationsagenten konnen andere Anbieter und API-Schlussel als der Eltern-Agent verwenden:

toml
[agents.researcher]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
# Verwendet den konfigurierten API-Schlussel des Anbieters

Dies ermoglicht das Routing von Aufgaben an verschiedene LLM-Anbieter basierend auf den Aufgabenanforderungen, wobei die Anmeldedaten jedes Anbieters isoliert bleiben.

Richtlinien-Engine

Sitzungs- und Agenten-Werkzeuge unterliegen der Richtlinien-Engine:

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

[security.tool_policy.tools]
delegate = "supervised"    # Genehmigung fur Delegation erfordern

Verwandte Seiten

Released under the Apache-2.0 License.