Agent-Tools
Jeder Coding-Agent bringt eigene Tools mit: Dateien lesen, Befehle ausführen, Code bearbeiten. OAR fügt eine kleine Auswahl hinzu, damit ein Agent Dinge tun kann, die nur das Relay kann: mit anderen Sessions arbeiten, eine Web-Preview veröffentlichen und dir eine Frage stellen, die du mit einem Tippen beantwortest.
Du rufst diese Tools nie selbst auf. Du bittest in einfachen Worten darum, und der Agent wählt das Tool. Dieser Abschnitt zeigt, was ein Agent tun kann, wofür er deine Freigabe braucht und was genau er sendet und zurückbekommt.
Die Tools #
| Tool | Was ein Agent damit tut | Seite |
|---|---|---|
relay_ |
Listet, liest, promptet, startet, stoppt und beobachtet andere Sessions, auf diesem Relay oder auf einem gekoppelten. Ein Tool, 23 Aktionen. | relay_tool |
preview |
Veröffentlicht einen lokalen Dev-Server oder einen Ordner unter einem öffentlichen Link, listet die Previews seiner Konversation auf und schließt sie. | preview |
ask_ |
Stellt dir eine Frage als Karte mit Buttons und wartet auf die Antwort. | ask_user |
- relay_toolDas Agent-Tool relay_tool — mit Sessions auf diesem Relay und auf gekoppelten Relays arbeiten. Alle 23 Aktionen, ihre Parameter und Ergebnisse, Berechtigungen, Grenzen und Fehler.
- previewDas Agent-Tool preview — einen lokalen Dev-Server oder einen Ordner unter einem öffentlichen Link veröffentlichen. Aktionen, Parameter, Ergebnisse, Einrichtung und Grenzen.
- ask_userWie Agents dir eine Frage als Karte mit Buttons stellen — das Tool ask_user von OAR und die eigenen Frage-Tools der Provider, mit den Parametern je Provider.
Worum du bitten kannst #
Einige Bitten und das Tool, zu dem ein Agent greifen würde:
| Du schreibst | Der Agent nutzt |
|---|---|
| „Starte drei Sessions, die jeweils einen dieser Ordner prüfen, und fasse dann zusammen, was sie gefunden haben.“ | relay_: create_, wait, read_ |
| „Frag die Session auf @build-box, ob das Deployment durchgelaufen ist.“ | relay_: list_, send |
| „Beobachte diese Sessions und sag mir, wenn eine eine Frage stellt oder fehlschlägt.“ | relay_: subscribe |
| „Wie viel von meinem Claude-Plan ist auf diesem Relay noch übrig?“ | relay_: usage |
| „Starte den Dev-Server und gib mir einen Link, den ich auf dem Handy öffnen kann.“ | preview: create |
| „Bevor du das Schema änderst, sprich mit mir.“ | ask_ |
Nach Provider #
Was ein Tool tut, ist bei jedem Provider gleich. Unterschiedlich ist, ob die Agents eines Providers das Tool bekommen und unter welchem Namen sie es sehen.
| Provider | relay_ |
preview |
Rückfrage-Karten |
|---|---|---|---|
| Claude | ja, als mcp__ |
ja, als mcp__ |
Claudes eigenes Ask, von OAR als Karte angezeigt |
| Claude API Neu in 0.9.18 | ja, als mcp__ |
ja, als mcp__ |
Claudes eigenes Ask, von OAR als Karte angezeigt |
| DeepSeek Neu in 0.9.17 | ja, als mcp__ |
ja, als mcp__ |
Ask von Claude Code, von OAR als Karte angezeigt |
| GitHub Copilot und OpenAI, SDK-Engine | ja, als relay_ |
kein Tool: Der Agent erfährt stattdessen, wie er die Preview-API des Relays aufruft | ask_ von OAR |
| GitHub Copilot und OpenAI, Extension-Engine | ja, über den MCP-Server von OAR (oar) |
ja, über den MCP-Server von OAR (oar) |
Copilots eigenes ask_, von OAR als Karte angezeigt |
| Cursor | ja, als relay_ |
ja, als preview |
ask_ von OAR |
| Grok | ja, über den MCP-Server von OAR (oar) |
ja, über den MCP-Server von OAR (oar) |
keine |
| Claude Cloud | nein | nein | Claudes eigenes Ask, von OAR als Karte angezeigt |
Warum die Namen sich unterscheiden
Provider, die Tools über das Model Context Protocol (MCP) annehmen, setzen den
Namen des Servers vor den Namen des Tools. Die Agents von Claude, Claude API und DeepSeek bekommen
die Tools von OAR von einem Server namens relay, daher erscheint preview als mcp__.
Grok und die Extension-Engine von Copilot bekommen sie von einem Server namens oar, und
jeder setzt den Namen auf seine eigene Weise davor. Es ist in jedem Fall dasselbe Tool.
Chats mit Claude API und DeepSeek führen Claude Code auf dem Host des Relays aus, daher bekommen ihre Agents die Tools genau wie die eines Claude-Chats. Siehe Claude API und DeepSeek.
Sessions mit Claude Cloud laufen in einer Sandbox bei Anthropic, nicht auf deinem Rechner.
Die Tools des Relays reichen nicht hinein: Eine Cloud-Session hat kein relay_
und kein preview. Agents in anderen Sessions können eine Cloud-Session mit
relay_ trotzdem starten, lesen, prompten und stoppen.
Grok und die Extension-Engine von Copilot bekommen die Tools von einem kleinen MCP-Server,
den OAR an den Agent anhängt. Die Umgebungsvariable
OAR_ für das Relay schaltet diesen Server ab; diese Agents haben
dann kein relay_ und erfahren, wie sie die Preview-API aufrufen, statt
ein Tool preview zu haben.
Wann ein Tool da ist #
| Tool | Agents haben es, wenn |
|---|---|
relay_ |
mindestens ein Relay gekoppelt ist oder Settings → Relays → Agent sessions → Agents may start and use sessions on this relay (Einstellungen → Relays → Agent-Sessions → Agents dürfen auf diesem Relay Sessions starten und nutzen) eingeschaltet ist. Ohne beides wird das Tool gar nicht angeboten. |
preview |
immer, bei den Providern, die es haben. Ob es veröffentlichen kann, hängt von der Preview-Lane ab, die aus ist, bis du sie einrichtest; ist die Lane aus, antwortet das Tool mit dem Grund. |
ask_ |
immer, bei den Providern, die es haben. |
Ob eine Session relay_ bekommt, erfährt sie, wenn ihr Agent-Prozess
startet. Nachdem du das erste Relay gekoppelt oder Agent-Sessions eingeschaltet
hast, hat eine Konversation, die schon lief, das Tool vielleicht erst, wenn ihr
Agent neu gestartet ist. Neu in 0.9.18 Dasselbe gilt für den neuen Namen des
Tools: Eine Session, die lief, als du auf 0.9.18 aktualisiert hast, hat es
vielleicht noch als remote_; siehe Der Name.
Was du in der Hand behältst #
- Nichts, was über die Konversation hinausreicht, ist standardmäßig an. Agent-Sessions sind aus, bis du sie einschaltest, ein gekoppeltes Relay ist in jeder Konversation gesperrt, bis du es erwähnst, und die Preview-Lane ist aus, bis du sie konfigurierst.
- Freigabekarten. Die erste Session, die ein Agent in einer Konversation startet, das erste Mal, dass er Sessions auf einem Relay beobachtet, und jede schreibende Aktion in den Relay-Modi ask und plan fragen dich zuerst, auf einer Rückfrage-Karte.
- Die Tools geben einem Agent nie ein Token. Aufrufe an ein anderes Relay laufen über dein eigenes Relay, das das Token dieses Relays hält. Das ist keine Sandbox: Ein Agent läuft als Benutzer des Relays und könnte die Config-Datei und die Datenbank von der Festplatte lesen. Siehe Was OAR offenlegt.
- Preview-Links sind öffentlich. Wer einen Preview-Link hat, kann ihn ohne Anmeldung öffnen. Der Agent soll das sagen, wenn er dir einen gibt. Ein Agent listet und schließt nur die Previews seiner eigenen Konversation Neu in 0.9.14; Settings → Previews (Einstellungen → Previews) zeigt und schließt alle.
Die Details stehen auf der Seite jedes Tools: relay_tool → Berechtigungen und Freigaben und preview → Grenzen.
Keine Tools #
Einige Dinge, die Agents in OAR tun, funktionieren ohne ein Tool von OAR:
- Bilder, Video und Audio in einer Antwort. Agents erfahren, dass sie eine Mediendatei über ihren absoluten Pfad einbetten können; das Relay zeigt sie im Verlauf an. Das ist eine Anweisung im Prompt, kein Tool. Agents auf der Extension-Engine von Copilot und in Claude Cloud bekommen sie nicht.
/im Eingabebereich. Du kannst Previews selbst veröffentlichen, auflisten und schließen, indem dupreview /tippst (Eingabebereich). Das kostet keinen Turn eines Agents und funktioniert mit jedem Provider.preview - Das Plan-Board. Wenn ein Agent mit dem Planen fertig ist, zeigt OAR ein Plan ready (Plan bereit) Board. Bei Claude und DeepSeek kommt es vom eigenen Plan-Tool von Claude Code, das OAR aufgreift.
Im Quellcode
Für Mitwirkende und Neugierige: wo diese Tools im
OAR-Repository liegen. Jedes Tool ist einmal
definiert, unabhängig vom Provider, unter shared/, und wird jedem Provider über einen kleinen
Adapter angehängt.
| Datei | Was darin steht |
|---|---|
| shared/remote-relay-contract.mjs | relay_: Beschreibung, Parameter, Aktionen, Berechtigungen, Grenzen, Fehlercodes, Eingabeprüfung |
| shared/remote-relay-tool-core.mjs | relay_: der Aufruf, den der Adapter jedes Providers macht, und wann das Tool angeboten wird |
| server/services/remote-relay-dispatcher.mjs | relay_: was jede Aktion tut, die Prüfungen davor, das Warten auf eine Antwort |
| shared/relay-events.mjs | Ereignis-Abonnements: Ereignistypen, Grenzen, der Text einer Ereignisnachricht |
| server/services/relay-event-service.mjs | Ereignis-Abonnements: sie speichern und Ereignisse zustellen |
| shared/preview-tool-core.mjs | preview: Beschreibung, Parameter, Eingabeprüfung, der Aufruf |
| server/services/preview-registry-service.mjs | preview: die Previews selbst und ihre Grenzen |
| shared/ask-user-bridge.mjs | Rückfrage-Karten: von der Frage des Agents zur Karte und zurück |
| server/claude-worker/claude-sdk-adapter.mjs | Claude, Claude API und DeepSeek: der MCP-Server relay und die Brücke für Ask |
| server/cursor-worker/cursor-turn-runner.mjs | Cursor: relay_, preview und ask_ als eigene Tools |
| server/copilot-worker/copilot-sdk-session-process.mjs | Copilot-SDK-Engine: relay_ und ask_ als Session-Tools |
| server/mcp/oar-mcp-server.mjs | Der MCP-Server oar für Grok und die Extension-Engine von Copilot |
| server/relay-tools.md | Die festen Anweisungen, die die Copilot-Engines zu diesen Tools bekommen |