Agents betreiben
Die Abläufe für einen Agent, der mit Caldera verbunden ist: installieren, aktualisieren, festhalten, zurückrollen, pausieren und fortsetzen mit und ohne Caldera, die Runtime aktualisieren, ein Token erneuern, löschen, einen bestehenden Agent auf die Runtime umstellen und eine Fehlertabelle vom Symptom zur Lösung.
Konventionen: <dir> ist das Verzeichnis des Agents auf seinem Rechner (zum Beispiel
~/caldera-agents/my-agent), <name> sein Name. Befehle auf dem Rechner lauten python3 caldera.pyz ...; der
Download liegt dort, wo er geholt wurde, und die Runtime hält eine Kopie unter <dir>/.caldera/caldera.pyz.
Kurzübersicht
| Ich möchte | Wo | Wie |
|---|---|---|
| Sehen, ob ein Agent lebt | Caldera, oder der Rechner | Karte in der Übersicht; python3 caldera.pyz status --dir <dir> |
| Pausieren | Caldera | Seite des Agents, "Pause" |
| Ohne Caldera pausieren | der Rechner | python3 caldera.pyz pause --dir <dir> (Runtime-Agents) oder der eigene Kanal des Agents |
| Aktualisieren | Caldera | Seite des Agents, Panel Blueprint, "Auf diese Version wechseln" |
| Zurückgehen | Caldera oder der Rechner | "Zurückrollen"; oder python3 caldera.pyz rollback --dir <dir> |
| Eine Einstellung ändern | Caldera | Seite des Agents, Tab Einstellungen (Admins) |
| Ein Log anfordern | Caldera | Tab Läufe oder Übersicht, Log ansehen (Admins) |
| Einen neuen Agent installieren | Caldera, dann der Rechner | Blueprints, "Installieren", dann caldera init |
| Die Runtime aktualisieren | Caldera | Seite des Agents, Panel Runtime, "Runtime aktualisieren" (Admins) |
Einen Agent aus einem Blueprint installieren
Voraussetzungen: eine Admin-Rolle in einem freigeschalteten Workspace; eine veröffentlichte Version; ein
Rechner mit Python 3 und (für den Service) systemd; ausgehendes HTTPS zu app.calderaapp.io.
- In Caldera: Blueprints, der Blueprint (oder ein Katalog-Blueprint), "Installieren...". Die Version wählen, den Agent-Namen vergeben (Kleinbuchstaben, Ziffern, Bindestriche; nicht der Name eines bestehenden Agents), "Install-Code erstellen" drücken. Ist das Produkt einer Anbindung nicht freigeschaltet oder würde der Workspace zehn Bots überschreiten, sagt der Dialog es jetzt.
- Beide Befehle jetzt kopieren. Der Code wird einmal angezeigt und läuft nach 15 Minuten ab.
- Auf dem Rechner den ersten Befehl ausführen (laden und prüfen). Auf macOS die Variante mit
shasum -a 256 -c -verwenden. Schlägt die Prüfung fehl, anhalten; siehe die Fehlertabelle. - Den zweiten Befehl ausführen:
python3 caldera.pyz init <code> --url https://app.calderaapp.io. Mit--dir <dir>lässt sich das Verzeichnis wählen (Standard~/caldera-agents/<name>). Er fragt nach den deklarierten Geheimnissen (verdeckte Eingabe); für unbeaufsichtigte Installationen stattdessenCALDERA_SECRET_<NAME>setzen. - Er installiert und startet
caldera-<name>.service. Damit er weiterläuft, wenn niemand angemeldet ist:loginctl enable-linger <user>. - Prüfen:
python3 caldera.pyz status --dir <dir>zeigtprocess runningundlast report ok, und der Agent erscheint binnen etwa einer Minute in der Übersicht. - Die Unabhängigkeitsprobe machen.
Scheitert init nach dem Verbrauchen des Codes, existiert der Agent in Caldera ohne Rechner. Ihn in Caldera
löschen und einen neuen Code ausstellen.
Einen Agent mit eigenem Reporter anmelden
- Übersicht, "Neuer Agent": ein Name und, falls ein anderes gewünscht ist, das Meldeintervall.
- Das Token und die zwei Umgebungszeilen jetzt kopieren; sie werden einmal angezeigt.
- Sie in die private Geheimnisdatei des Reporters legen; den Reporter starten; die Übersicht prüfen. Siehe Einen Agent verbinden.
Auf eine neue Version aktualisieren
- Die
versionim Manifest auf eine Nummer erhöhen, die nie veröffentlicht wurde (veröffentlichte Versionen sind unveränderlich, und ein Entwurf darf nur ersetzt werden, bis er veröffentlicht ist), das Bundle neu bauen, als Version des Blueprints hochladen und veröffentlichen. - Auf der Seite des Agents, Panel Blueprint: die Version wählen, "Auf diese Version wechseln". Caldera speichert den Wunsch und sendet ihn in der Antwort auf die nächste Meldung des Agents.
- Der Zeile unter dem Panel folgen. Sie geht: Warten auf die nächste Meldung des Agents, dann angewendet, vom Agent zurückgerollt oder fehlgeschlagen, mit der eigenen Nachricht des Agents.
- Nach einem angewendeten Update beobachtet sich der Agent 30 Minuten lang. Wird sein Level in dieser Zeit schlechter, rollt er von selbst zurück, und das Panel zeigt dann das Ergebnis des Zurückrollens.
Was die Runtime tut, steht unter die Runtime. Kurz: holen, neben
der laufenden Version bereitstellen, tauschen, neu starten, health ausführen, behalten oder zurückgehen. Alles in
state-Pfaden bleibt unberührt.
Eine Version, von der der Agent zurückgerollt hat oder die er abgelehnt hat, wird nicht erneut angewendet, bis eine andere Version genannt wird. Um eine korrigierte Version zu versuchen, eine neue Versionsnummer veröffentlichen.
Festhalten
Festhalten bittet den Agent, auf der Version zu bleiben, die er ausführt: Auf der Seite des Agents "Festhalten" drücken. Technisch setzt es die gewünschte Version auf die laufende, was der Agent als nichts zu tun sieht. Es verhindert auch, dass ein veralteter Wunsch nach einer neueren Version angewendet wird. "Festhalten" ist abgeschaltet, solange der Wunsch schon der laufenden Version entspricht.
Zurückrollen
- Aus Caldera: "Zurückrollen" nennt die vorherige veröffentlichte Version. Das ist richtig, wenn der Agent gesund ist, aber das alte Verhalten gewünscht ist.
- Auf dem Rechner, ohne Caldera:
python3 caldera.pyz rollback --dir <dir>. Es wechselt auf die vorherige Version und startet neu, ohne Netz. Es werden nur zwei Versionen aufbewahrt, ein zweitesrollbackgeht also wieder vor. - Nach einem lokalen Rollback ist die Version, die es verlassen hat, gesperrt: Die nächste Meldung macht es nicht
rückgängig, auch wenn Caldera diese Version weiter wünscht.
statuszeigtheld <version> is not applied until Caldera names another version. Dann festhalten (die Version nennen, die läuft) oder eine andere Version nennen, damit die Seite von Caldera übereinstimmt. - Ein Katalog-Agent kann nur die eine mitgelieferte Version holen, für ihn ist das lokale Rollback also der Weg zurück.
Die Sperre löst sich, wenn eine andere Version erfolgreich angewendet wird.
Eine Einstellung ändern, jetzt ausführen, ein Log anfordern
- Einstellungen (Admins): Tab Einstellungen, ändern, "Anwenden". Der Agent prüft jede Änderung gegen seine eigenen Grenzen und antwortet in eigenen Worten; "A change is waiting for the next report of the agent" bleibt stehen, bis er es tut. Eine Ablehnung lautet "Nothing changed: : ." und ändert nichts (ganz oder gar nicht). Caldera wiederholt die Grenzprüfung nur, um es einer Person sofort zu sagen.
- Jetzt ausführen: Der Agent muss
run_nowincontrolsanbieten; wird abgelehnt, solange pausiert ist. - Log: nur Admins. Caldera fragt den Agent nach einem der Log-Namen, die er gemeldet hat; der Agent sendet die letzten 512 KB. Der Text wird mit dem Befehl 30 Tage aufbewahrt.
Ein Befehl wird höchstens einmal zugestellt. Geht die Antwort auf eine Meldung verloren, geht der Befehl verloren und schlägt nach zehn Minuten fehl (wenn der Agent das nächste Mal meldet). Dann erneut senden.
Pausieren und Fortsetzen, mit und ohne Caldera
Alles, was Caldera tut, geht auch ohne Caldera. Den Weg ohne Caldera für jeden Agent kennen, bevor er gebraucht wird.
| Agent | Pausieren | Fortsetzen |
|---|---|---|
| Jeder Runtime-Agent | python3 caldera.pyz pause --dir <dir> |
python3 caldera.pyz resume --dir <dir> |
| Ein Agent im Adapter-Modus | dieselben Befehle; sie rufen den Adapter auf | dieselben |
| Ein Agent mit eigenem Reporter | der eigene Kanal des Agents (ein Chat-Befehl, eine Datei) | derselbe |
- Eine in Caldera gesetzte Pause ist dieselbe Pause: dieselbe Datei und derselbe Stopp.
- Bei einem Runtime-Agent stoppt die Pause den Prozess des Agents; die Runtime meldet weiter, und der Zustand zeigt "Paused" (warn).
- Caldera schaltet die Controls für einen stillen Agent ab ("The agent is not reachable, so it cannot take a command now").
- Eine Runtime auf einem entfernten Rechner wird pausiert, indem man sich dort anmeldet und den Befehl ausführt. Den genauen Befehl neben der Dokumentation des Agents festhalten.
Die Runtime selbst aktualisieren
Die Runtime aktualisiert sich auf Knopfdruck, signiert (wie es funktioniert, steht unter die Runtime):
- Auf der Seite des Agents zeigt das Panel Runtime die Version, die der Agent ausführt, die, die dieses Caldera
ausliefert, ein Festhalten und die davor aufbewahrte Datei. "Runtime aktualisieren" (nur Admins; Members lesen)
setzt einen Wunsch. Die nächste Antwort auf eine Meldung trägt ihn. Das Panel folgt ihm: Warten auf die Meldung
des Agents, "muss sich erst bewähren", während die neue Runtime ihre fünf Minuten läuft, dann die eigenen Worte
der Runtime für übernommen, zurückgegangen oder nicht übernommen. Eine Version, die zurückgegangen oder
fehlgeschlagen ist, wird nicht erneut angeboten, bis Caldera eine andere ausliefert, und der Knopf fehlt bis
dahin. Eine Runtime, die keine Version meldet (älter als diese Funktion, oder gar kein
caldera.pyz), bekommt statt des Knopfs einen Hinweis: Sie wird einmal von Hand ersetzt, siehe unten. - Die Runtime lädt
/cli/caldera.pyzund seine Signatur, prüft die Prüfsumme und die Signatur gegen den öffentlichen Schlüssel, der in ihr eingebaut ist, und lässt die neue Datei ihre Version nennen. Eine falsche oder fehlende Signatur oder ein Rechner ohnessh-keygen: Nichts ändert sich, und die Seite des Agents zeigt das Ergebnisfailedmit dem Grund. - Sie bewahrt die alte Datei als
<dir>/.caldera/caldera.pyz.previousauf, tauscht die Datei, die die Unit nennt, und startet an Ort und Stelle neu: derselbe Prozess, die eigenen Prozesse des Agents halten nie an. - Die erste erfolgreiche Meldung binnen fünf Minuten macht sie gut. Eine neue Runtime, die abstürzt oder nicht rechtzeitig meldet, geht von selbst zurück; diese Version wird dann gesperrt, bis eine neuere angeboten wird.
Auf dem Rechner, ganz ohne Verbindung:
python3 <dir>/.caldera/caldera.pyz rollback-runtime --dir <dir> # zurück auf die vorherige Datei
python3 <dir>/.caldera/caldera.pyz pin-runtime 0.32.0 --dir <dir> # nie auf eine andere Version aktualisieren
python3 <dir>/.caldera/caldera.pyz pin-runtime off --dir <dir> # das Festhalten lösen
Eine einmalige Hürde: Eine Runtime, die installiert wurde, bevor es das gab, kann sich nicht selbst
aktualisieren. <dir>/.caldera/caldera.pyz einmal von Hand ersetzen (Modus 700, Prüfsumme verifiziert) und
systemctl --user restart caldera-<name>.service ausführen; die Unit hat KillMode=process, der Agent läuft also
weiter. Danach sind Updates ein Knopfdruck. Eine Runtime, die von woanders als <dir>/.caldera/caldera.pyz (dem
Pfad der Unit) gestartet wurde, kann sich nicht ersetzen und sagt das.
Unter welchem Claude-Konto ein Agent läuft
Das Panel Runtime auf der Seite des Agents sagt, bei welchem Claude-Konto der Rechner angemeldet ist. Siehe Der Hinweis auf das Claude-Konto.
Das Token eines Agents erneuern
Das tun, wenn ein Token geleakt sein könnte oder verloren ging.
- Caldera: Menü des Agents, "Rotate token...". Das alte Token funktioniert sofort nicht mehr. Das neue wird einmal angezeigt, mit den zwei Umgebungszeilen.
- Der Agent ist in Caldera nun still, bis der Rechner das neue Token hat.
- Runtime-Agent:
<dir>/.caldera/agent.envbearbeiten, den Wert vonCALDERA_TOKENersetzen (den Dateimodus 600 behalten), dannsystemctl --user restart caldera-<name>.service. Der Agent läuft weiter: Er hielt das Token nie, und eine neu gestartete Runtime übernimmt ihn. - Eigener Reporter: seine Geheimnisdatei aktualisieren und den Reporter-Service neu starten.
- Prüfen, dass der Agent wieder meldet.
Die Runtime hat keinen Befehl, der das neue Token holt; Caldera schreibt nie auf den Rechner.
Token der Anbindungen (Zugriff auf andere Produkte) werden hier nicht erneuert. Sie sind die Token der Bots und werden in den eigenen Bot-Einstellungen des Produkts behandelt; siehe die Tabelle unten ("Anbindung ist defekt").
Einen Agent löschen
Caldera: Menü des Agents, "Delete...". Die Bestätigung nennt, was bleibt.
- Caldera löscht den Agent, seine Läufe und seine Befehle. Sein Token funktioniert sofort nicht mehr.
- Auf dem Rechner ändert sich nichts. Die Runtime führt den Agent weiter aus und loggt in jedem Intervall eine
abgelehnte Meldung (
HTTP 401). - Die Bots werden nicht widerrufen. Nur das Produkt, dem ein Bot gehört, kann ihn widerrufen. Die Bestätigung listet sie mit Namen auf ("These bots stay: ..."). Sie in den Bot-Einstellungen dieses Produkts widerrufen, sonst bleiben die Token gültig, bis sie ablaufen.
- Um den Agent vom Rechner zu entfernen, in dieser Reihenfolge:
python3 caldera.pyz pause --dir <dir>(das stoppt den Prozess des Agents; die Unit zuerst abzuschalten ließe ihn weiterlaufen),systemctl --user disable --now caldera-<name>.service,~/.config/systemd/user/caldera-<name>.serviceentfernen undsystemctl --user daemon-reload,<dir>entfernen (es enthält den Zustand des Agents; behalten, wenn er gebraucht wird).
Ein Blueprint lässt sich nur löschen, wenn kein Agent aus ihm installiert ist.
Einen bestehenden Agent auf die Runtime umstellen
Es funktioniert, wenn der Agent als ein Prozess laufen kann, den die Runtime starten und stoppen darf. (Ein Agent mit eigenen Timern und einer Pause, die andere setzen, nutzt den Adapter-Modus oder bleibt bei seinem eigenen Reporter.)
Vorher: Der Agent hat einen eigenen Reporter und eigene Timer. Nichts ändert sich, bis die Schritte beginnen.
- Das Bundle bauen und als erste Version eines Blueprints hochladen (siehe Blueprints); veröffentlichen.
- Den alten Agent in Caldera umbenennen (zum Beispiel
<name>-old): Die Installation braucht den freien Namen. - Einen Install-Code für den Blueprint ausstellen, mit dem Namen des Agents.
- Auf dem Rechner zuerst den alten Modus stoppen, damit nichts doppelt läuft: die alten Timer und den alten Reporter-Service abschalten.
- Die zwei Install-Befehle ausführen;
initschreibt das Verzeichnis und die Unit. - Prüfen:
status, das Journal der Unit (journalctl --user -u caldera-<name>.service -n 20), der Agent in Caldera, einmal "Jetzt ausführen" und die Unabhängigkeitsprobe. - Läuft er, den alten Agent in Caldera löschen. Die alten Unit-Dateien an ihrem Platz lassen: Der Weg zurück braucht sie.
Der Weg zurück: Die neue Unit abschalten und den alten Modus wieder starten.
systemctl --user disable --now caldera-<name>.service
systemctl --user enable --now <die alten Timer und der alte Reporter-Service>
In Caldera den alten Agent zurückbenennen und den neuen löschen. Der alte und der neue Modus dürfen nie gleichzeitig laufen.
Das Kontingent-Gauge sieht falsch aus
Symptom. Das Kontingent-Gauge eines Agents in Caldera stimmt nicht mit der Nutzungsseite des Anbieters überein. Zum Beispiel zeigt Caldera 79 % für die Woche, während der Anbieter 90 % zeigt.
Ursache. Das ist eine Eigenschaft davon, wie der Agent misst, nicht von Caldera. Ein Gauge, das ein Agent aus dem Kontingentbericht seines eigenen letzten Modellaufrufs baut, ist nur so frisch wie dieser Aufruf. Zwei Dinge machen es veraltet:
- Andere Sitzungen verbrauchen dasselbe Kontingent. Das Abonnement wird mit interaktiven Sitzungen auf demselben Konto geteilt, der echte Wert kann also höher sein als der letzte, den der Agent sah.
- Der Agent hält Läufe über seiner Schwelle an. Über seinen eigenen Grenzen startet der Agent keinen Lauf, und ohne Lauf gibt es keine neue Beobachtung. Das Gauge bleibt dann, wo es war.
Ein Fenster, dessen Rücksetzzeit vorbei ist, zählt als leer (0), ein veraltetes Gauge kann also auch bei einer Rücksetzung auf 0 fallen, nach der der Agent noch keinen Aufruf gesehen hat.
Was hilft. Ein Agent, der ein Gauge aus seiner eigenen letzten Beobachtung baut, sollte
- sagen, wann er beobachtet hat: Die ersten Worte des
detaildes Gauges sind die Zeit der letzten Messung (zum Beispiel "Stand 06.10. 14:05"), damit ein veralteter Wert als veraltet erkennbar ist; - die Beobachtung von selbst auffrischen, höchstens einmal pro Stunde, auch wenn er pausiert oder gesperrt ist, mit einer Anfrage, die nach nichts als dem Kontingent fragt (kein Kontext, keine Werkzeuge, das kleinste Modell); und in seinem Log sagen, wenn das fehlschlägt und dass der letzte Wert bleibt.
Es gibt in Caldera kein zentrales Kontingent-Gate, und eines ist nicht geplant: Jeder Agent hält seine eigenen Grenzen.
Prüfen. Die Zeit in der Detailzeile des Gauges lesen. Ist sie älter als etwa eine Stunde, schlägt die Messung fehl: Im eigenen Log des Agents nachsehen und prüfen, dass das Programm, das die Messung macht, gefunden wird. Den Wert mit der Nutzungsseite des Anbieters vergleichen.
Beheben. Caldera zeigt, was der Agent gemeldet hat; in Caldera ist nichts zu ändern. Ein Gauge ohne Messzeit nicht als aktuell behandeln.
Fehlerbehebung
Mit der Seite des Agents anfangen (Level, letzte Meldung, die Gesundheitseinträge "Process" und "Binding") und auf dem
Rechner mit python3 caldera.pyz status --dir <dir>.
| Symptom | Wahrscheinliche Ursache | Prüfen | Beheben |
|---|---|---|---|
| Agent wird als nicht erreichbar angezeigt (still, Level Störung) | Keine Meldung seit drei Intervallen (mindestens zwei Minuten): Rechner aus, Runtime gestoppt, kein Netz, Token erneuert oder Agent gelöscht, Workspace deaktiviert | status: runtime, last report ... ago; journalctl --user -u caldera-<name>.service; <dir>/.caldera/runtime.log |
Die Unit starten; oder die Ursache in den Zeilen darunter beheben |
Log sagt report failed: HTTP 401 (unauthorized) |
Das Token wurde erneuert oder der Agent gelöscht | Das Menü des Agents in Caldera; gibt es den Agent noch? | Das Token erneuern und den Rechner aktualisieren (oben); oder neu installieren |
HTTP 403 |
Der Workspace ist für Caldera nicht freigeschaltet (oder hat die Freischaltung verloren) | Der Zustand des Workspace in der App | Die Freischaltung des Workspace anfragen |
HTTP 404 bei /api/agent/v1/report |
Die URL ist nicht Calderas eigene Adresse (die Adresse eines anderen Produkts antwortet 404) | curl -i https://app.calderaapp.io/api/agent/v1/report sollte 401 antworten, nicht 404 |
Calderas eigene Adresse als CALDERA_URL verwenden |
HTTP 400 bei einer Meldung |
Der Body ist kein gültiges JSON, kein Objekt oder nennt ein anderes protocol |
Eigener Reporter: den Antwort-Body ausgeben | "protocol": 1 und ein JSON-Objekt senden |
HTTP 413 |
Die Meldung ist über 256 KB (ein Log über 512 KB) | Größe des Bodys | Weniger senden; Logs: nur das Ende |
HTTP 429 |
Mehr als 60 Meldungen oder 10 Logs pro Minute von einem Agent (30 Bundle-Abrufe; 20 Install-Aufrufe je Adresse) | Intervall in der Schleife des Reporters | Das Intervall einhalten, das die Antwort erbittet |
Download von caldera.pyz: Prüfsumme stimmt nicht und die Datei ist HTML |
Ein Proxy oder eine falsche Adresse hat eine Webseite statt der Datei ausgeliefert | head -c 200 caldera.pyz zeigt HTML |
Von https://app.calderaapp.io/cli/caldera.pyz selbst laden, ohne einen Proxy, der umschreibt |
/cli/caldera.pyz antwortet 404 |
Die Adresse ist nicht Calderas eigene, oder dieses Caldera liefert keinen Runtime-Build aus, oder ein Proxy dazwischen ändert den Host |
curl -i https://app.calderaapp.io/cli/caldera.pyz.sha256 |
Calderas eigene Adresse verwenden; Host unverändert weiterleiten |
sha256sum: command not found |
macOS | Die macOS-Variante im Dialog verwenden (shasum -a 256 -c -) |
|
init: unbekannter, abgelaufener oder benutzter Code (404) |
Alle drei sehen mit Absicht gleich aus | Das Alter des Codes (15 Minuten); wurde er schon einmal ausgeführt? | Einen neuen Code ausstellen |
init: ... already holds an agent |
Das Zielverzeichnis hat .caldera/config.json |
Ein anderes --dir wählen oder das alte entfernen |
|
init: ein Geheimnis wird gebraucht |
Kein Terminal und kein CALDERA_SECRET_<NAME> |
Die Variable setzen oder in einem Terminal ausführen | |
init scheitert nach dem Verbrauchen des Codes |
Entpacken oder Schreiben ist fehlgeschlagen | Die Meldung sagt, dass der Agent in Caldera ohne Rechner existiert | Den Agent in Caldera löschen, einen neuen Code ausstellen |
| Der Dialog lehnt mit einem Ablehnungsgrund ab | Siehe die Ablehnungsgründe | Die genannte Ursache beheben; der Code bleibt benutzbar, wenn das Einlösen abgelehnt hat | |
| Agent zeigt "Not running" (Störung) | Der Prozess des Agents beendet sich immer wieder | <dir>/.caldera/agent.out.log; status zeigt process not running; die Meldung sagt "restarting in N s" |
Den Agent reparieren. Neustarts weichen von 5 s bis 300 s zurück; "Jetzt ausführen" überspringt das Warten |
| Der Service stoppt, wenn man sich abmeldet | systemd-User-Linger ist aus | loginctl show-user <user> |
loginctl enable-linger <user> |
| Ein Befehl bleibt "wartet auf die nächste Meldung des Agents" | Normal bis zu einem Intervall (30 s; 10 s, solange die Seite offen ist). Dauert es länger: Der Agent ist still | Zeit der letzten Meldung; das Meldeintervall | Warten; ist er still, siehe die erste Zeile. Ein Befehl, den der Agent nie beantwortet, schlägt nach zehn Minuten fehl, bei seiner nächsten Meldung |
| "Wechsel auf X wartet auf die nächste Meldung des Agents" bleibt stehen | Der Agent ist still; oder die Runtime sperrt diese Version (sie hat sie zurückgerollt oder abgelehnt) und wendet sie nicht an; oder der Wunsch nennt einen Blueprint, der nicht der des Agents ist | status: eine Zeile held; die Zeile zum letzten Update |
Still: siehe die erste Zeile. Gesperrt: eine andere Version nennen oder eine neue Versionsnummer veröffentlichen |
| Update endete sofort mit "rolled back" | Der Health-Befehl der neuen Version ist fehlgeschlagen | last update ... in status; den Health-Befehl von Hand in <dir>/versions/<version> mit der Umgebung des Agents ausführen |
Die Gesundheitsprüfung oder die Version korrigieren; eine neue Nummer veröffentlichen |
| Update endete mit "failed: could not fetch" | Caldera war beim Abruf nicht erreichbar | Es wiederholt nach zehn Minuten von selbst | |
| Update endete mit "failed: refused X: ..." | Das Bundle war ungültig oder passte nicht zu seiner Prüfsumme | Die Nachricht nennt den Grund (Pfad, Größe, Prüfsumme, fehlende Datei) | Das Archiv korrigieren; eine neue Nummer veröffentlichen |
| Der Agent hat von selbst zurückgerollt, nachdem er gesund war | Sein Level wurde binnen 30 Minuten nach dem Update schlechter | status, die Nachricht zum letzten Update |
Die Version untersuchen; eine korrigierte veröffentlichen |
Runtime-Update endete mit "failed" und einer Meldung zu Signatur oder ssh-keygen |
Die Signatur fehlt oder verifiziert nicht, oder der Rechner hat kein ssh-keygen |
Die Nachricht im Panel Runtime | OpenSSH auf dem Rechner installieren; bei fehlender Signatur das nächste Release abwarten |
| Das Panel Runtime bietet kein "Runtime aktualisieren" an | Die Version ist zurückgegangen oder fehlgeschlagen und gesperrt; die Runtime ist festgehalten; sie ist schon auf der ausgelieferten Version; oder sie meldet keine Version | Der Hinweis im Panel | Das nächste Release abwarten; das Festhalten mit pin-runtime off lösen; oder eine alte Runtime einmal von Hand ersetzen |
| Eine Einstellung wird abgelehnt ("Nothing changed: ...") | Der Wert liegt außerhalb der Grenzen des Manifests, oder der Schlüssel ist nicht deklariert | Die Nachricht nennt das Label und die Regel | Einen erlaubten Wert verwenden |
| Ein Log antwortet "There is no such log." | Der Name ist nicht in den logs des Manifests deklariert, oder die Datei existiert nicht oder wird außerhalb des Agent-Verzeichnisses aufgelöst |
Die logs des Manifests; die Datei unter dem Versionsverzeichnis |
Ihn deklarieren oder den Pfad korrigieren |
| Der Log-Dialog sagt, der Agent hat nicht geantwortet | Der Agent ist still oder länger als zehn Minuten beschäftigt | Es erneut versuchen, wenn er meldet | |
| Eine Anbindung ist defekt (Seite des Agents, "Zugriff auf andere Produkte") | Binding <product> ist bad: Der Bot oder sein Token wurde gelöscht oder widerrufen, oder das Token ist abgelaufen (sie gelten ein Jahr) |
Die Bot-Einstellungen des Produkts; das Detail des Gesundheitseintrags | In den Einstellungen dieses Produkts ein neues Token für den Bot (oder einen neuen Bot) anlegen; CALDERA_BINDING_<PRODUCT>_TOKEN in <dir>/.caldera/agent.env ändern; pause, dann resume. Caldera kann es nicht reparieren. |
Anbindung zeigt warn |
Das Produkt war vom Rechner aus nicht erreichbar | Meist vorübergehend | |
| Die Übersicht ist für einen Admin leer | Falscher Workspace; oder der Workspace ist nicht freigeschaltet ("not set up for Caldera yet") | Der Workspace-Umschalter | Wechseln; oder die Freischaltung anfragen |
| Ein Member kann nicht steuern | Members sehen nur | Rolle | Ein Admin tut es |
| Das Kontingent-Gauge stimmt nicht | Die letzte Messung des Agents ist alt (die Zeit lesen) | Siehe das Kontingent-Gauge | Siehe dort |
Agent zeigt eine Commit-artige Version (1c1f3c5) und kein Panel Blueprint |
Er meldet mit eigenem Reporter (von Hand angemeldet) | Normal; Updates sind Sache des Agents | |
python3: not found oder ein Syntaxfehler |
Python fehlt oder ist sehr alt | python3 --version |
Python 3.10 oder neuer verwenden (die niedrigste getestete) |
Ablehnungsgründe
Calderas Ablehnungen tragen einen reason (und params für den Satz); die App schreibt den Satz in der Sprache der
lesenden Person. Die eigene message des Servers ist englische Prosa für Logs.
| Reason | Bedeutet | Beheben |
|---|---|---|
product_not_activated |
Der Workspace ist für Caldera nicht freigeschaltet | Die Freischaltung anfragen |
role_cannot_view |
Ein Guest kann das nicht sehen | Einen Member oder Admin verwenden |
blueprint_name_taken |
Ein Blueprint dieses Namens existiert | Einen anderen Namen wählen |
blueprint_has_agents |
Agents sind aus ihm installiert | Sie zuerst löschen |
version_published |
Diese Version ist veröffentlicht und kann sich nicht ändern | Eine neue Versionsnummer hochladen |
version_upload_race |
Dieselbe Version wurde im selben Augenblick hochgeladen | Erneut versuchen |
version_not_deletable |
Eine veröffentlichte Version kann nicht gelöscht werden | Nichts; eine neue veröffentlichen |
version_unpublished |
Vor dem Installieren veröffentlichen | Veröffentlichen |
manifest_name_mismatch |
Der name des Manifests ist nicht der des Blueprints |
Beide gleich machen |
upload_file_missing, archive_empty, archive_not_zip, archive_damaged, archive_entry_damaged, archive_unsupported |
Der Upload ist kein brauchbares Zip (keine Datei, leer, kein Zip, beschädigt, oder zip64, mehrere Datenträger, Verschlüsselung, unbekannte Kompression) | Neu packen |
archive_too_large (20 MB), archive_too_many_entries (5000), archive_unpacks_too_large (100 MB), archive_entry_too_large (50 MB) |
Eine Größengrenze | Das Bundle verkleinern |
archive_unsafe_path, archive_bad_entry |
Ein Pfad, der nicht erlaubt ist, oder ein Eintrag, der ein Link, Gerät, Duplikat oder eine Datei ist, die auch ein Verzeichnis ist | Entfernen |
archive_no_manifest |
Kein caldera.agent.yaml auf oberster Ebene |
An die Wurzel legen |
archive_file_missing |
Eine Datei, die das Manifest nennt, fehlt | Hinzufügen |
manifest_too_large, manifest_not_yaml, manifest_invalid |
Das Manifest ist über 256 KB, kein gültiges YAML oder am genannten Pfad ungültig | Das Feld korrigieren |
agent_name_taken |
Der Workspace hat einen Agent dieses Namens | Einen anderen Namen wählen |
binding_product_not_activated |
Ein angebundenes Produkt ist für den Workspace nicht freigeschaltet | Es dort freischalten |
binding_product_no_address |
Dieses Caldera hat keine Adresse für dieses Produkt | Kann ein Workspace nicht ändern; um Hilfe bitten |
bot_role_mismatch |
Ein Bot dieses Namens existiert mit anderer Rolle | Den Agent umbenennen oder den Bot ändern |
role_cannot_lend |
Die Rolle der ausstellenden Person darf keinen Bot mit dieser Rolle anlegen | Als Admin oder Owner ausstellen |
bot_limit |
Der Workspace hätte mehr als zehn Bots | Bots entfernen |
issuer_cannot_install |
Die Person, die den Code ausgestellt hat, darf keine Agents mehr installieren | Einen neuen Code als Admin ausstellen |
instance_no_caldera_address |
Dieses Caldera kann die Befehle nicht zusammenbauen | Kann ein Workspace nicht ändern; um Hilfe bitten |
agent_not_from_blueprint |
Der Agent wurde von Hand angemeldet und hat keinen Blueprint | Nicht anwendbar |
version_not_installable |
Keine veröffentlichte Version des Blueprints des Agents | Sie veröffentlichen oder eine andere nennen |
runtime_version_held |
Die gewünschte Runtime ist zurückgegangen oder fehlgeschlagen und gesperrt | Warten, bis Caldera eine andere Version ausliefert |
runtime_too_old |
Die Runtime meldet keine Version | Einmal von Hand ersetzen |
runtime_not_served |
Dieses Caldera liefert keinen Runtime-Build aus | Kann ein Workspace nicht ändern; um Hilfe bitten |
runtime_up_to_date |
Die Runtime führt schon die ausgelieferte Version aus | Nichts |
runtime_pinned |
Die Runtime ist auf eine andere Version festgehalten | pin-runtime off auf dem Rechner |