Code-Tools und Code-Blöcke sind in den Plänen Scale und Enterprise verfügbar.
Mit Charlie erstellen
Am schnellsten geht es mit Charlie. Beschreibe, was der Code tun soll, welche API er aufruft und welche Zugangsdaten er verwenden soll. Charlie schreibt den Code, richtet die Eingaben ein und verbindet die Zugangsdaten sowie die Salesforce- oder HubSpot-Verbindungen, die in deinem Konto bereits bestehen. Bei einem Code-Tool führt Charlie den Code anschließend mit Testwerten aus und zeigt dir, was der Agent erhalten würde. Die Testanfragen sind echt. Anfragen, die nur Daten lesen, führt Charlie ohne Rückfrage aus. Vor allem, was Daten anlegt, ändert oder löscht, eine Nachricht sendet oder einen Webhook aufruft, fragt Charlie dich zuerst.

Charlie fügt ein Tool zur Bestellabfrage hinzu und testet es einmal
Code schreiben
Der Code ist ein JavaScript-Modul, das eine asynchrone Funktionrun exportiert. telli ruft sie mit einem Objekt auf:
Ein Code-Tool kann jeden JSON-Wert zurückgeben; der Agent erhält ihn als Ergebnis des Tools. Ein Code-Block muss ein JSON-Objekt zurückgeben; spätere Blöcke lesen es als
result. Wenn etwas fehlschlägt, wirf einen Error mit einer kurzen Nachricht, die sagt, was schiefgelaufen ist.
- Er kann Standard-Web-APIs nutzen, zum Beispiel
fetch,URL,URLSearchParams,Headers,AbortSignal,TextEncoder,TextDecoder,crypto.subtle,crypto.randomUUID,atobundbtoa. Anfragen erreichen jede öffentliche Adresse. - Er kann keine npm-Pakete oder anderen Module importieren.
- Die Uhr läuft in UTC. Übergib beim Formatieren von Datumswerten
timeZoneanIntl.DateTimeFormat. - Variablen auf oberster Ebene können aus einer früheren Ausführung desselben Codes erhalten bleiben, aber auch jederzeit neu beginnen. Halte Werte, die sich ändern, innerhalb von
run. - Ausgaben von
console.logwerden nirgends angezeigt. Gib zurück oder wirf, was du sehen musst.
Limits
Code-Tool hinzufügen
- Öffne den Agenten und gehe zu Tools → Code-Tools. Wähle Code-Tool hinzufügen….
- Schreibe den Code links im Editor Code.
-
Lege im Tab Konfigurieren fest:
- Wähle Fertig und veröffentliche den Agenten. Erwähne das Tool im Prompt, wenn der Agent es nur unter bestimmten Bedingungen verwenden soll.


Ein Code-Tool mit einer Eingabe, Zugangsdaten und einem Antwort-Timeout von 8 Sekunden
Code-Tool testen
Öffne den Tab Test des Tools, fülle die Testeingaben aus und wähle Ausführen. telli speichert den Entwurf und führt dessen Code so aus wie ein Anruf. Geheime Eingaben und Zugangsdaten verwenden ihre gespeicherten Werte. Ein Testlauf sendet echte Anfragen: Was der Code in deinen Systemen anlegt, ändert oder löscht, passiert tatsächlich. Was der Agent erhält zeigt das Ergebnis oder die Nachricht, die der Agent bei einem Fehler bekäme. Nennt der Fehler eine Zeile deines Codes, springst du mit Gehe zu Zeile dorthin.

Ein fehlgeschlagener Testlauf zeigt die Nachricht, die der Agent erhalten würde
Wenn ein Code-Tool im Anruf fehlschlägt
Der Agent erhält statt eines Ergebnisses eine Nachricht. Der Anruf geht weiter. Wirft dein Code einen Fehler, erhält der AgentThe code failed while running: gefolgt vom Fehler, seiner Zeile und seinem Stack, gekürzt auf 1.000 Zeichen. Der Agent formuliert deine Nachricht für den Anrufer. Schreibe sie deshalb für den Agenten, zum Beispiel The order system returned 503. Tell the caller you cannot check the order right now. Für erwartete Ergebnisse, etwa wenn kein passender Datensatz existiert, gib ein Ergebnis mit einer Nachricht zurück, statt einen Fehler zu werfen.
Hat eine Pflichteingabe keinen Wert, läuft der Code nicht und der Agent erhält Missing required value "<name>". Das passiert, wenn der Agent einen erforderlichen LLM-Parameter auslässt oder der Kontakt für eine erforderliche Kontakteigenschaft oder Systemvariable keinen Wert hat. Einen Wert, der beim Kontakt fehlt, kann der Anrufer nicht liefern. Fehlt der Wert bei manchen Kontakten, entferne bei der Eingabe das Häkchen Erforderlich und behandle den fehlenden Wert im Code.
Erreicht der Code ein Limit oder lassen sich Zugangsdaten nicht laden, erfährt der Anrufer keine technischen Details. Der Agent sagt dem Anrufer, dass es gerade nicht möglich ist, und bietet andere Hilfe an. Der Grund bleibt im Testergebnis und im Anrufverlauf sichtbar:
Der Agent liest höchstens etwa 100 KB eines Ergebnisses. Gib deshalb nur die Werte zurück, die er braucht.
In Simulationen laufen Code-Tools nicht. Sie antworten mit der Antwort, die unter Tools in der Simulation festgelegt ist, oder mit einer generierten Antwort.
Code-Block hinzufügen
- Nutze im Workflow-Editor + auf der Zeichenfläche und wähle Dienstprogramme → Code.
- Wähle unter Eingaben Eingabe hinzufügen. Gib jeder Eingabe einen Namen und ordne ihr Workflow-Daten, einen festen Wert oder ein Geheimnis zu.
- Füge unter Zugangsdaten die Zugangsdaten hinzu, die der Code braucht.
- Schreibe den Code im Editor JavaScript. Gib ein JSON-Objekt zurück.
- Wähle in der Feldauswahl eines späteren Blocks
resultdes Code-Blocks oder eines seiner Felder.


Ein Code-Block, der einen neuen Kontakt an ein externes System sendet
Code-Block testen
Veröffentliche den Workflow, öffne Durchläufe → Manuell ausführen und starte ihn. Manuelle Ausführungen führen echte Aktionen aus, auch die Anfragen des Codes. In den Ausführungsdetails zeigt der Code-Schritt sein JavaScript, bei einem geworfenen Fehler den Fehler und sein Ergebnis unter Ausgaben → Ausgaben laden.Wenn ein Code-Block fehlschlägt
Der Code-Schritt wird als fehlgeschlagen markiert, die Blöcke danach auf diesem Pfad laufen nicht, und die Ausführung endet als fehlgeschlagen. telli wiederholt den Schritt nicht. Die Ausführungsdetails nennen den Grund: Der Code hat einen Fehler geworfen, das Zeitlimit überschritten, zu viel CPU-Zeit gebraucht, keinen Speicher mehr gehabt, kein JSON-Objekt zurückgegeben, mehr als 1 MiB zurückgegeben, Code und Eingaben waren zusammen größer als 1 MiB, oder Zugangsdaten ließen sich nicht laden.Geheimnisse und Zugangsdaten
Schreibe nie einen API-Schlüssel, Token oder ein Passwort in den Code oder in eine Eingabe vom Typ Konstante. Beide werden als Klartext gespeichert. Verwende stattdessen eine geheime Eingabe oder Zugangsdaten.- Geheime Eingabe: Füge eine Eingabe vom Typ Geheim hinzu. Der Wert wird beim Speichern verschlüsselt, und der Code liest ihn wie jede andere Eingabe.
- Zugangsdaten: Wähle unter Zugangsdaten + Hinzufügen und wähle Zugangsdaten aus Einstellungen → Entwickler oder deine Salesforce- oder HubSpot-Verbindung aus Einstellungen → Integrationen. Gib ihnen einen Namen; der Code liest sie als
credentials.<name>.
telli holt vor der Ausführung für jede Salesforce- oder HubSpot-Verbindung einen Token. Er bleibt die ganze Ausführung über gültig, der Code muss ihn also nie erneuern. Ein Code-Tool oder Code-Block kann bis zu 10 Zugangsdaten verwenden. Wenn deine Salesforce-Org Anmeldungen auf IP-Bereiche beschränkt oder Sitzungen an eine IP-Adresse bindet, lehnt Salesforce den Token ab, sobald der Code ihn verwendet.
telli ersetzt im Ergebnis und in Fehlermeldungen jeden Wert einer geheimen Eingabe und jeden Token oder jedes Geheimnis von Zugangsdaten durch
[redacted]. Dabei findet telli nur den exakten Wert: Ein Geheimnis, das der Code kürzt, kodiert oder verändert, bleibt lesbar. Gib nie ein Geheimnis zurück und wirf es nie in einem Fehler.