Die wichtigsten Erkenntnisse
- Restock ist ein Beispiel-Agent, der echte Einkäufe bezahlt. Er läuft in Slack auf Managed Deep Agents, findet Produkte, erstellt einen Warenkorb und geht über eine API zur Kasse, die das Machine Payments Protocol (MPP) unterstützt.
- Zahlungen bleiben sicher und bleiben im Budget. Link, Stripes Consumer-Wallet, wickelt die Zahlung ab, sodass der Agent niemals eine Kartennummer sieht. Der Nutzer genehmigt eine Ausgabeanfrage bis zu einem festgelegten Betrag, und der Agent kann nicht mehr ausgeben.
- Bauen Sie Ihren eigenen Agenten, der zahlen kann. Beginnen Sie mit Restocks Beispielcodeund lassen Sie uns wissen, was Sie entwickeln.
Agenten sind bereits gut darin, Dinge zum Kauf zu finden. Bezahlen ist schwieriger: Es bewegt echtes Geld, erfordert Zugangsdaten, die das Modell niemals sehen sollte, und lässt sich schwer rückgängig machen.
Um zu zeigen, wie man einen Agenten baut, der bezahlt, haben wir Restock entwickelt, einen Beispiel-Agenten für Bürozubehör, der in Slack auf Managed Deep Agentsläuft. Er durchsucht echte Produkte, erstellt einen Warenkorb und bezahlt über Link, Stripes Consumer-Wallet, die Agenten den sichersten Weg zum Bezahlen bietet.
Dieser Beitrag folgt einer Anfrage von der ersten Nachricht bis zur bestätigten Bestellung:
Uns gehen die Stifte aus. Kannst du ein 12er-Pack blaue Tintenstifte fürs Büro finden, insgesamt unter $25?
Restock bestellt die Stifte für $22.18, Gebühren inbegriffen. Die Preise in diesem Beitrag sind illustrativ.
Wahl der Zahlungsmethode
Ein Agent kann bezahlen, indem er die Kasse des Händlers in einem Browser steuert, aber das ist fehleranfällig. Seiten ändern sich, Websites blockieren automatisierte Checkouts, und Zahlungsdetails müssen eingegeben werden, ohne sie dem Modell preiszugeben.
Eine API, die das Machine Payments Protocol (MPP) unterstützt, vermeidet das: Sie teilt dem Agenten genau mit, was zu zahlen ist, und nimmt die Zahlung direkt entgegen. Der Nachteil ist die Abdeckung, da der Agent nur über MPP-fähige APIs kaufen kann. Diese Liste wächst, mit Tool-Aggregatoren wie Apify und Mercator, die zu vertikalen Anbietern wie Zinc für den Einzelhandel stoßen. Restock nutzt Zinc, aber das Muster hängt nicht davon ab.
Wie die Bausteine zusammenpassen
Restock besteht aus vier Bausteinen:
- Link verwaltet die Zahlungsmethoden des Nutzers und bittet ihn, Zahlungen zu genehmigen.
- MPP, das Machine Payments Protocol, definiert den Zahlungsaustausch über HTTP. Der Händler antwortet mit
402 Payment Requiredund Zahlungsanweisungen, und der Client wiederholt den Vorgang mit einem Zahlungscredential. - Zinc sucht Produkte und gibt Händlerbestellungen über seine MPP order API.
- Managed Deep Agents (MDA) hostet den Agenten und übernimmt Slack, menschliche Prüfung, Credentials und gespeicherte Zustände.

Suche und Warenkorb
Wir haben eigene Tools für Zinc-Suche, den Warenkorb und die Zahlung geschrieben, plus die Anweisungen, die das Gespräch prägen. MDA übernimmt den Rest, einschließlich des Speicherns von Gesprächen und Bestellungen, sodass jemand Tage später zurückkommen und nach denselben Stiften fragen kann. Hier die Struktur und eine gekürzte Agentendefinition:
restock-agent/
├── agent.py # the agent: model + tools
├── instructions.md # how Restock talks and when it uses each tool
├── tools/restock.py # the tools the model can call
├── restock/ # Zinc, Link wallet, cart and order storage
└── sandbox/setup.sh # installs the Link CLI in the sandbox
agent = define_deep_agent(
name="restock",
model=ChatOpenAI(model=os.environ.get("OPENAI_MODEL", "gpt-5.6-sol")),
tools=[
search_restock_products, # Zinc search
prepare_restock_order, # save the cart
set_restock_payment_amount, # upfront amount, within the budget
request_restock_payment, # Slack review, then Link approval
wait_for_restock_approval,
check_restock_order, # order status from Zinc
],
)
Für die Stifte-Anfrage durchsucht Restock Zinc mit einem Zinc API key und einem finanzierten Suchkonto (die Suche wird nicht über Link bezahlt). Der Nutzer wählt ein 12er-Pack aus, und Restock speichert den Warenkorb ohne Zahlungsbetrag.
Festlegen des Vorschussbetrags
Restock behandelt das Budget von $25 als Obergrenze, nicht als zu berechnenden Betrag. Steuern und Versand sind aus einer Produktliste nicht bekannt, und die Summe wird erst fest, wenn die Händlerbestellung aufgegeben wurde. Deshalb fragt Restock den Nutzer, wie viel im Voraus zu zahlen ist, bis zu $25. Zinc zieht diesen Betrag ein, wenn die Bestellung eingeht, zahlt den Händler daraus und erstattet den Rest.
Für die Stifte wählt der Nutzer $23. Zinc behält eine Grundgebühr von $1, womit ein Händlerzuschuss von $22 für den Artikel, die Steuer und den Versand bleibt. Optionale Gebühren, wie Zincs E-Mail-Order-Updates, können diesen Betrag weiter schmälern, daher fordert Restock vor der Prüfung die Bestellung ohne Zahlung an und liest die tatsächlichen Gebühren aus Zincs 402 Payment Required Challenge.
Zugangsdaten vom Modell fernhalten
Das Modell behandelt niemals die Geheimnisse, die die Bestellung bezahlen. Die Link-Sitzung liegt in einer nutzereigenen MDA Connection, sodass die Wallet jeder Person ihre eigene bleibt. Die Lieferadresse, die Benachrichtigungs-E-Mail und der Zinc-API-Schlüssel liegen in agenteneigenen Connections. Die Link CLI führt den Login in MDA's managed sandboxaus. Ein kleiner Helper hält die gespeicherte Sitzung in der Connection des Nutzers und legt sie nur während eines laufenden Befehls in der Sandbox ab. Das Verbinden von Link genehmigt keinen Kauf, und spätere Gespräche verwenden die Sitzung wieder.
Prüfen des Kaufs in Slack
Bevor etwas bezahlt wird, überprüft der Nutzer den Warenkorb, das Büro-Label, die Gebühren und den Vorausbetrag in Slack. Die Lieferadresse bleibt privat. Restock löst für diese Prüfung einen Interrupt aus, sodass der Lauf pausiert bleibt, bis der Nutzer in Slack auf Approve oder Reject klickt. Nichts, was das Modell in einen Tool-Aufruf schreibt, kann dies genehmigen.
Bezahlen mit Link über MPP
Als Nächstes postet Restock einen Link-Freigabe-Link im Slack-Thread für genau den Betrag aus Zincs Challenge, dieselben $23. Der Nutzer genehmigt ihn auf der Link-Website, was die eigene Zustimmung der Wallet zur Zahlung ist.
Sobald Link freigibt, sendet Restock die bezahlte Anfrage an Zinc mit einem Link- shared payment token als Credential, und Zinc verarbeitet die Zahlung über Stripe. pympp übernimmt die MPP-Formatierung.
Das Zahlungstool liest das Token aus einer privaten Sandbox-Datei, löscht es nach der Verwendung und gibt dem Modell nur eine öffentliche Zusammenfassung zurück. Das Token erzwingt selbst keine Warenkorbdetails, daher prüft das Tool auch die Bestellung gegen das vom Nutzer Überprüfte und bestätigt, dass die Freigabe noch aktuell ist.
Bestätigung der Bestellung
Die Händlerbestellung beläuft sich auf $21.18 ($14.99 für die Stifte, $1.20 Steuer, $4.99 Versand), innerhalb des $22-Zuschusses. Der Nutzer zahlt $22.18 einschließlich Zincs Gebühr, und Zinc erstattet die anderen $0.82 zurück.

Restock bestätigt in Slack, sobald Zinc meldet order_placed, und teilt die Sendungsverfolgung mit, wenn der Händler versendet. Über die beispielhaften Preise hinaus haben wir Restock vollständig auf einer gehosteten Bereitstellung getestet: Eine echte Bestellung erreichte order_placed, und die erwartete Rückerstattung kam an.
Einstieg
Der Code liegt unter langchain-samples/restock-agent, und dessen README führt Schritt für Schritt durch Einrichtung und Deployment. MDA's Slack-Einrichtungsanleitung beschreibt die Anbindung der Slack-App.
Restock ist ein Beispiel: Es unterstützt nur Lieferung in die USA und USD, ein Büro pro Deployment und Zahlung aus der eigenen Wallet der anfragenden Person.
Restock hat drei Modi. Setze RESTOCK_MODE um einen auszuwählen, und probiere sie der Reihe nach aus:
- Rehearsal (
rehearsal): fiktive Produkte und eine simulierte Genehmigung. Benötigt einen OpenAI-API-Key und einen LangSmith-Workspace mit Managed-Deep-Agents-Zugang. - Link test approval (
link-test): echte Zinc-Suche und eine echte Link-Genehmigung, ohne Kauf. Fügt eine Link-Wallet, einen Zinc-API-Key, ein finanziertes Zinc-Suchkonto und Lieferdetails hinzu. - Live purchase (
live): eine echte Zahlung und eine echte Bestellung beim Händler.
Das Muster lässt sich auf jeden Agenten übertragen, der Geld ausgibt. Lass den Agenten suchen und den Warenkorb zusammenstellen, halte das Ausgabenlimit und die Genehmigungen in Code fest, den das Modell nicht anfassen kann, und werte eine Bestellung erst als aufgegeben, wenn der Händler es bestätigt.
Probiere Restock aus. Teile uns mit, was du darüber denkst, und zeige, was du darauf aufbaust!
