Remote-Relays und Kopplung Neu in 0.9.4
Betreibst du mehr als ein OAR-Relay, zum Beispiel eines auf deinem Arbeitsrechner und eines auf einem Server, kannst du sie koppeln. Ein Agent in jeder Konversation kann dann die Sessions des anderen Relays auflisten und lesen, einer davon einen Prompt schicken, eine neue starten, auf die Antwort warten und eine Rückfrage, die der andere Agent gestellt hat, zu dir zurückbringen. Du entscheidest, welche Relays ein Agent anfassen darf und wie weit.
Die Agents nutzen dafür das Tool relay_. Seine Aktionen sind in der
Referenz beschrieben; diese Seite
handelt davon, was du einrichtest und was du siehst. Für Sessions auf
demselben Relay siehe Agent-Sessions.
Kopplung #
- Öffne Settings → Relays (Einstellungen → Relays).
- Füge unter Add a relay (Relay hinzufügen) die Webadresse des anderen Relays ein: die Adresse, mit der du es im Browser öffnest.
- Lass Also add this relay there (Dieses Relay auch dort hinzufügen) angehakt, wenn das andere Relay auch dieses auflisten soll. Drück Add (Hinzufügen).
OAR prüft die Adresse mit dem eigenen Token dieses Relays oder mit dem ?token=, das der
eingefügte Link mitbringt. Erst wenn das fehlschlägt, erscheint ein Feld
Token of the other relay (Token des anderen Relays); füge dort das Token des
anderen Relays ein und drück erneut Add. Du kannst das Feld auch vorher mit
Use a different token (Anderes Token verwenden) öffnen. Das Token wird
einmal gesendet und nicht in der Seite behalten.
Das Relay liest den Namen des anderen Relays von diesem selbst. Ist Also add this relay there angehakt, stellt es sich danach mit seiner Public address (Öffentliche Adresse) vor, damit die Kopplung in beide Richtungen funktioniert. Die Statuszeile unter dem Formular sagt dir, wie es gelaufen ist, zum Beispiel, dass das Relay hinzugefügt wurde und dieses ebenfalls hinzugefügt hat, oder dass das Hinzufügen dort fehlgeschlagen ist und warum. Das Relay auf der anderen Seite zeigt den Eintrag mit der Markierung Paired automatically (Automatisch gekoppelt). Jenes Relay behält den Eintrag auch, wenn es die Adresse noch nicht erreichen kann.
Name und Adresse dieses Relays #
Unter Settings → Relays zeigt der obere Teil des Tabs den Namen dieses Relays und die Felder, die andere Relays brauchen:
- Relay name (Relay-Name) wird unter General (Allgemein) gesetzt; der Tab Relays zeigt ihn nur an. Ist er leer, wird der Hostname des Rechners verwendet.
- Public address ist der Weg, auf dem andere Relays dieses erreichen: die
Adresse, unter der du dieses Relay von einem anderen Gerät aus öffnest. Sie
wird für Also add this relay there gebraucht. Ist sie leer, wenn du ein
Relay hinzufügst, speichert OAR die Adresse der Seite, von der aus du
koppelst, als öffentliche Adresse, außer diese Seite liegt auf einer
Loopback-Adresse wie
localhost; dann schlägt die Kopplung in Gegenrichtung fehl, bis du eine einträgst. - Accept prompts from other relays' agents (Prompts von Agents anderer Relays annehmen) ist unten beschrieben.
Eine Kopplung entfernen #
Remove (Entfernen) in der Zeile eines Relays beendet die Seite dieses Relays: Agents hier können nicht mehr auf jenem Relay arbeiten. Die andere Seite macht es nicht rückgängig:
- Das andere Relay behält seinen eigenen Eintrag für dieses. Entferne ihn dort ebenfalls, um die Kopplung in beide Richtungen aufzuheben.
- Hat die Kopplung das Token dieses Relays übergeben, besitzt das andere Relay es weiterhin. Den Eintrag zu entfernen widerruft es nicht. Tausche das Token dieses Relays aus, um das andere Relay auszusperren.
Das Token ist die eigentliche Grenze
Wer das Token eines Relays besitzt, hat vollen Zugriff darauf. Agents may (Agents dürfen) und Accept prompts from other relays' agents begrenzen, was Agents über das Tool tun; sie begrenzen nicht, was jemand mit dem Token direkt tut.
Wenn die Tokens verschieden sind #
Nutzen beide Relays dasselbe Token, wird nichts übergeben. Braucht das andere Relay ein anderes Token, um dieses zurückzurufen, enthält die Vorstellung das Token dieses Relays, und die Agents des anderen Relays können dann hier arbeiten. Ein Relay, das schon in der Liste des anderen Relays steht, behält die dafür gespeicherte Adresse und das Token; ändere diese in seinen eigenen Einstellungen.
Online oder offline #
Jedes gekoppelte Relay zeigt einen Punkt und eine Zeile mit seinem Hostnamen, seiner OAR-Version (sofern bekannt) und wann es zuletzt gesehen wurde, oder not reached yet (noch nicht erreicht). Bei einem anderen Punkt als Online oder Not checked yet (Noch nicht geprüft) steht der Grund unter dem Namen. Dieses Relay prüft jedes gekoppelte Relay einmal pro Minute. Check (Prüfen) prüft eines sofort. Open (Öffnen) öffnet das Relay in einem neuen Tab.
| Punkt | Bedeutung |
|---|---|
| Online | Das Relay hat geantwortet. |
| Offline | Es war nicht erreichbar, oder ein Gateway davor meldet, dass es nicht läuft. |
| Token not accepted (Token nicht akzeptiert) | Es hat geantwortet, aber das dafür gespeicherte Token abgelehnt. |
| Error (Fehler) | Etwas anderes ist schiefgegangen; die Zeile unter dem Namen sagt, was. |
| Not checked yet | Noch keine Prüfung ist abgeschlossen. |
Ein Relay per Erwähnung freischalten #
Agents sehen immer, welche Relays gekoppelt sind. Aber ein gekoppeltes Relay ist in einer Konversation gesperrt, bis du es öffnest, damit ein Agent nicht in ein Relay hineingreift, das du nicht gemeint hast. Zwei Dinge öffnen es:
- Du erwähnst es in einer deiner Nachrichten. Tippe
@und wähl das Relay aus der Liste, oder schreib seinen Namen oder seinen Hostnamen. Ein Hostname, der eine IP-Adresse oderlocalhostist, zählt nie, und ein Relay, dessen Name eine Adresse ist, zählt nur mit vorangestelltem@. - Ein Agent auf jenem Relay schreibt in die Konversation. Das Relay ist dann für die Konversation offen, im Rahmen dessen, was Agents may erlaubt, damit der gefragte Agent antworten, zurückfragen oder später berichten kann.
Einmal freigeschaltet, bleibt ein Relay für den Rest der Konversation offen. Ein Prompt von einem Agent schaltet nie ein anderes Relay frei. Ein gesperrtes Relay lehnt alles ab außer dem Auflisten der Relays; der Agent wird angewiesen, dich zu bitten, es zu erwähnen. Dieses Relay selbst braucht keine Erwähnung.
Was Agents dürfen #
Jedes gekoppelte Relay hat in seiner Zeile ein Menü Agents may. Neue Kopplungen beginnen mit Full (Vollzugriff).
| Stufe | Was ein Agent auf jenem Relay tun kann |
|---|---|
| Read only (Nur lesen) | Schauen: Sessions auflisten und lesen, die Ausgabe eines Hintergrundbefehls lesen, die Provider sehen und was von den Plänen übrig ist, auf eine Antwort warten, Sessions beobachten. |
| Read and prompt (Lesen und Prompts senden) | Alles oben Genannte, und einer bestehenden Session einen Prompt schicken. |
| Full | Alles oben Genannte, und Sessions starten, Neu in 0.9.16 ihre Einstellungen ändern, Rückfragen beantworten, Turns stoppen und archivieren. |
Die Referenz listet die Aktionen pro Stufe.
Accept prompts from other relays' agents (Prompts von Agents anderer Relays annehmen) #
Dieser Schalter sitzt auf diesem Relay und entscheidet, was Agents von anderen Relays hier dürfen. Standardmäßig ist er an. Schaltest du ihn aus, können deren Agents hier weiterhin Sessions und die Ausgabe von Hintergrundbefehlen auflisten und lesen, auf Antworten warten und die Provider und den Plan-Verbrauch dieses Relays sehen. Alles, was etwas ändert, wird abgelehnt: Prompts senden, Sessions starten, Rückfragen beantworten, Turns stoppen, archivieren und aus dem Archiv holen und hier Sessions beobachten. Die Ablehnung, die sie bekommen, lautet: This relay does not accept prompts from other relays' agents (Dieses Relay nimmt keine Prompts von Agents anderer Relays an).
Der Schalter betrifft nur Agents anderer Relays. Für Agents dieses Relays, die an Sessions hier arbeiten, gilt die Einstellung Agents may start and use sessions on this relay (Agents dürfen auf diesem Relay Sessions starten und nutzen), nicht dieser Schalter.
Es ist eine eigene Entscheidung, getrennt von Agents may: Jene begrenzt deine Agents auf einem anderen Relay, diese begrenzt deren Agents auf deinem.
Grenzen, die dich schützen #
- Zwei Relays, nicht drei. Ein Prompt, der schon zwei Relays überquert hat, wird nicht an ein drittes weitergegeben, außer du hast dieses Relay selbst mit einer Erwähnung freigeschaltet. Dem Relay, von dem der Prompt kam, kann immer geantwortet werden. Lesen und Warten sind nie so begrenzt.
- 30 Prompts, dann wirst du gefragt. Hat der Agent einer Konversation 30 Prompts an andere Agents gesendet, ohne dass dazwischen eine Nachricht von dir kam, fragt der nächste dich auf einer Karte, in jedem Relay-Modus. Einen Prompt senden, eine Session starten und eine Rückfrage beantworten zählt jeweils, ebenso bei Sessions auf diesem Relay. Allow (Erlauben) startet die Zählung neu.
- Freigabe in ask und plan. In diesen Relay-Modi fragt jede Aktion, die auf einem anderen Relay etwas ändert, dich zuerst auf einer Rückfrage-Karte: Prompt schicken, Session starten, Rückfrage beantworten, stoppen und archivieren.
- Der Agent auf der anderen Seite erfährt es. Der Prompt, den er empfängt, beginnt mit einer Zeile, die sagt, dass ein anderer Agent mit ihm spricht, und das sendende Relay und die Session nennt.
- Deine Konten bleiben, wo sie sind. Eine Session, die auf einem anderen Relay gestartet wird, nutzt die Provider-Konten jenes Relays, nicht deine hier.
Was du siehst #
Auf dem Relay, das den Prompt eines Agents empfängt:
- ↗ from … (von …) an der Nachricht: eine Badge, die das sendende Relay, seine Session und das Modell des Agents nennt. Sie verlinkt zurück zur Ausgangssession.
- ↗ name in der Konversationsliste, an einer Session, die ein Agent vom Relay
nameangelegt hat. - Keine Benachrichtigung „Antwort bereit“ für einen Turn, den ein Agent gestartet hat. Der Agent, der auf die Antwort wartet, berichtet seinem Nutzer selbst. Benachrichtigungen zu Rückfragen kommen weiterhin an.
Auf dem Relay, auf dem der Agent läuft, erscheint der Aufruf als Aktivitätszeile mit einem 🛰️, und eine Rückfrage des entfernten Agents kommt als Karte in deiner Konversation an. Längere Wartezeiten stellt Longest wait per tool call (Längste Wartezeit pro Tool-Aufruf) unter Agent-Sessions ein; dieser Regler gilt auch für gekoppelte Relays.
Ein Agent kann auch darum bitten, geweckt zu werden, wenn in Sessions auf einem gekoppelten Relay etwas passiert. Das heißt Sessions beobachten; die Seite des Tools steht in der Referenz.
Adressen und Tokens #
- Entfernte Adressen müssen
https://verwenden. Eine Adresse, die ohne Schema eingefügt wird, wird alshttps://gelesen. Ein eingefügter Link zum Web-Client funktioniert; OAR kürzt ihn auf die Basisadresse des Relays. - Einfaches
http://wird nur für Loopback-Adressen (zum Beispiel eine SSH-Portweiterleitung) und private Netzbereiche akzeptiert:10.,x. x. x 172.bis16. x. x 172.,31. x. x 192.,168. x. x 100.bis64. x. x 100.und der IPv6-Bereich127. x. x fc00::/. Ein so erreichtes Relay ist mit einer Warnung markiert. Bei einem privaten Bereich sagt sie, dass das Token unverschlüsselt durch dein Netz geht.7 - Ein
?token=in einem eingefügten Link wird für die Kopplung verwendet und nicht als Teil der gespeicherten Adresse behalten. - Das Token des anderen Relays wird auf diesem Relay gespeichert. Es erscheint nie in der Liste in den Einstellungen oder in der Webseite. Das Tool gibt einem Agent nie ein Token: Seine Aufrufe gehen über dieses Relay, das es hinzufügt. Ein Agent läuft allerdings als Benutzer des Relays und könnte lesen, was auf der Festplatte gespeichert ist: siehe Geheimnisse.
Wenn es nicht funktioniert #
| Was passiert | Warum, und was zu tun ist |
|---|---|
Der Agent sagt, das Relay sei gesperrt (REMOTE_) |
Du hast es in dieser Konversation nicht erwähnt. Tippe @ und wähl das Relay. |
Die Zeile zeigt Offline (oder der Agent bekommt REMOTE_) |
Das andere Relay läuft nicht oder ist unter der gespeicherten Adresse nicht erreichbar. Drück Check, sobald es wieder da ist. |
Token not accepted (oder REMOTE_) |
Das Token des anderen Relays hat sich geändert. Füge das Relay erneut mit seiner Adresse hinzu und gib sein Token ein, wenn du gefragt wirst; die bestehende Zeile wird aktualisiert. |
| Beim Hinzufügen heißt es, das andere Relay habe das Token nicht akzeptiert | Füge sein Token in Token of the other relay ein und drück erneut Add. |
| Das Hinzufügen hat geklappt, aber „adding this relay there failed“ | Oft ist Public address leer, oder das andere Relay läuft mit einem älteren OAR ohne Kopplung. Füge dieses Relay auf der anderen Seite von Hand hinzu. |
| Das andere Relay läuft mit einem älteren OAR | Ein Relay aus der Zeit vor der Kopplung lässt sich von hier aus trotzdem hinzufügen, und seine Zeile zeigt seine OAR-Version, aber es kann nicht zurückkoppeln. Manche Aktionen, etwa Plan-Verbrauch und Sessions beobachten, brauchen ein neueres Relay und sagen das. |
Agents auf dem anderen Relay können hier keine Prompts senden (REMOTE_) |
Accept prompts from other relays' agents ist auf diesem Relay aus. |
Ein Agent wird mit REMOTE_ abgelehnt |
Der Prompt, an dem er arbeitet, kam von einem anderen Relay und würde zu einem dritten weiterreisen. Erwähne dieses dritte Relay selbst, um es zu erlauben. |
| Diese Adresse ist dieses Relay | Du hast die eigene Adresse dieses Relays eingefügt. Füge die Adresse eines anderen Relays ein. |
Alle Fehlercodes stehen unter Fehler.