Agent Service (BullMQ + Redis)
Der Agent schickt eine/mehrere Nachricht/Nachrichten in einem fixen Intervall zu dem MCP Client. Gesteuert wird dies Über die OrionUI.
Agent-Messages laufen jetzt durch eine LangChain-Pipeline (Retry/Fallback/Parser), bevor sie an MCP geht.
Ein Agent kann weitere Agenten anlegen (spawnAgents) und Ergebnisse an andere bestehende Agenten weiterreichen (handoffTargets).
Fuer einmalige Ausfuehrung ohne Intervall kann runOnce: true gesetzt werden.
Mit noTools: true wird Tool-Nutzung hart serverseitig gesperrt.
Beispiel fuer POST /agents:
{
"intervalMs": 10000,
"noTools": false,
"text": "Analysiere den Input und gib eine Kurzfassung.",
"smartMode": "balanced",
"handoffTargets": ["<bestehende-agent-id>"],
"maxHandoffDepth": 2,
"spawnAgents": [
{
"intervalMs": 15000,
"noTools": true,
"text": "Pruefe die Kurzfassung auf Risiken und schicke ein Feedback.",
"smartMode": "balanced",
"handoffTargets": ["<bestehende-agent-id>"]
}
]
}Hinweise:
spawnAgentswerden beim Lauf des Parent-Agenten automatisch erstellt.spawnAgentswerden pro Parent-Agent nur einmal initialisiert (kein Spawn bei jedem Tick).handoffTargetsfuehren zu einem zusaetzlichen Queue-Job fuer den Ziel-Agenten.maxHandoffDepthbegrenzt die Weitergabetiefe, um Endlosschleifen zu vermeiden.runOnce: truefuehrt den Agenten einmalig aus (ohne Repeat-Job).noTools: trueverhindert Tool-Calls sowohl in der LangChain-Stufe als auch im MCP-Client.
Beispiel One-Shot mit 3 Agenten (1 Parent + 2 Childs):
{
"runOnce": true,
"noTools": true,
"text": "Loese die Aufgabe und konsolidiere das Ergebnis.",
"spawnAgents": [
{
"runOnce": true,
"text": "Analysiere Teilproblem A und gib ein kurzes Ergebnis.",
"handoffTargets": ["<ID-des-Konsolidierungs-Agenten>"]
},
{
"runOnce": true,
"text": "Analysiere Teilproblem B und gib ein kurzes Ergebnis.",
"handoffTargets": ["<ID-des-Konsolidierungs-Agenten>"]
}
]
}Agent-logs:
kubectl logs -n zodiac deploy/agent-worker