Entwickeln Sie Agenten, die stundenlang statt sekundenlang laufen

Mehrstufige Agentenschleifen mit langem Zeithorizont auf OpenRouter. Kosten- und Schrittobergrenzen, fortsetzbarer Zustand, Fortschritt per Streaming, Spracheingabe und Freigaben durch Menschen im Prozess — alles in einem SDK.

Funktionen

Mehrstündige Schleifen

Führen Sie Agentenschleifen mit hohen Schrittzahlen und langen Zeitlimits aus. Das Agenten-SDK orchestriert für Sie Tool-Aufrufe, Wiederholungsversuche und den Zustand von Gesprächsrunde zu Gesprächsrunde.

Kosten- und Schrittobergrenzen

Begrenzen Sie Ausführungen mit Abbruchbedingungen wie maxCost und stepCountIs. Kombinieren Sie mehrere Prüfungen, damit Agenten bei ausgeschöpften Budgets kontrolliert beendet werden.

Fortsetzbarer Zustand

Speichern Sie Konversationsnachrichten, Tool-Ergebnisse und gemeinsamen Kontext dauerhaft. Führen Sie lange Abläufe nach einem Absturz, einem Deployment oder einer menschlichen Überprüfung erneut aus oder setzen Sie sie fort.

Streaming-Fortschritt

Streamen Sie Token, Tool-Aufrufe und Schritt-Ereignisse in Echtzeit, damit Dashboards und Benutzeroberflächen den Fortschritt lang laufender Aufträge anzeigen können.

Wiederholung mit Backoff

Automatische Wiederholungsversuche bei vorübergehenden API-Fehlern halten über mehrere Stunden laufende Agenten auch bei Anbieterstörungen ohne manuelles Eingreifen am Laufen.

Spracheingabe

Binden Sie /api/v1/audio/transcriptions ein, um dieselbe Agentenschleife über einen Telefonanruf, Push-to-Talk oder ein Live-Mikrofon zu steuern.

Menschliche Einbindung

Pausieren Sie bei Tool-Aufrufen mit weitreichenden Folgen zur Genehmigung, bringen Sie Korrekturen ein und setzen Sie dann denselben Lauf mit vollständigem Kontext fort.

Selbstbefragung und Überprüfung

Betten Sie callModel in eine adversariale Selbstprüfungsschleife ein, die läuft, bis der Agent [DONE] ausgibt. Erkennen Sie Lücken, Halluzinationen und ungeprüfte Behauptungen vor der Auslieferung.

Eine Schleife, stundenlange Arbeit

Das Agenten-SDK hält lang laufende Ausführungen kompakt. Legen Sie Obergrenzen fest, speichern Sie den Zustand persistent und streamen Sie den Fortschritt mit denselben Grundbausteinen.

TypeScript
import { OpenRouter, tool, stepCountIs, maxCost } from '@openrouter/agent';
import { z } from '@openrouter-monorepo/lib-zod';

const openrouter = new OpenRouter();

const searchTool = tool({
  name: 'search',
  description: 'Search the web for information',
  inputSchema: z.object({ query: z.string() }),
  execute: async ({ query }) => {
    return { results: await fetchResults(query) };
  },
});

// Run for up to 200 steps OR $5 — whichever comes first
const result = openrouter.callModel({
  model: '~anthropic/claude-opus-latest',
  input: 'Research the fusion energy landscape and write a 5-page report.',
  tools: [searchTool],
  stopWhen: [stepCountIs(200), maxCost(5)],
});

// Stream tool calls as they happen so dashboards stay live
for await (const call of result.getToolCallsStream()) {
  console.log('tool', call.name, call.arguments);
}

const text = await result.getText();

Sprache rein, Sprache raus

Steuern Sie dieselbe Agentenschleife über einen Telefonanruf, eine Push-to-talk-App oder ein Live-Mikrofon. OpenRouter bietet dedizierte /api/v1/audio/transcriptions und /api/v1/audio/speech Endpunkte.

Transkribieren

Senden Sie Audiodaten an /api/v1/audio/transcriptions und wählen Sie aus allen STT-Modellen auf OpenRouter, einschließlich Whisper.

Agenten ausführen

Übergeben Sie das Transkript an callModel mit denselben Tools, Abbruchbedingungen und demselben Zustand, die Sie für textgesteuerte Ausführungen verwenden.

Sprachausgabe

Leiten Sie das Ergebnis durch /api/v1/audio/speech, um eine gesprochene Antwort zurückzugeben oder Audio an den Aufrufer zurückzustreamen.

Sprachgesteuerter Agent in drei Aufrufen

TypeScript
import { OpenRouter } from '@openrouter/sdk';
import { OpenRouter as Agent, stepCountIs, maxCost } from '@openrouter/agent';
import { readFile, writeFile } from 'node:fs/promises';

const sdk = new OpenRouter();
const agent = new Agent();

// 1. Voice in -> text
const audio = await readFile('./request.wav');
const { text: prompt } = await sdk.stt.createTranscription({
  model: 'openai/whisper-1',
  inputAudio: { data: audio.toString('base64'), format: 'wav' },
});

// 2. Long-horizon agent loop with ceilings + tool calls
const result = agent.callModel({
  model: '~anthropic/claude-opus-latest',
  input: prompt,
  stopWhen: [stepCountIs(50), maxCost(2)],
});
const reply = await result.getText();

// 3. Text -> voice out
const stream = await sdk.tts.createSpeech({
  model: 'openai/gpt-4o-mini-tts-2025-12-15',
  input: reply,
  voice: 'alloy',
  responseFormat: 'mp3',
});
const chunks: Uint8Array[] = [];
const reader = stream.getReader();
while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  chunks.push(value);
}
await writeFile('./reply.mp3', Buffer.concat(chunks));

So funktioniert es

1

Erfassung

Nehmen Sie Eingaben als Text oder Sprache entgegen. STT auf Whisper-Niveau ist bei Bedarf nur einen API-Aufruf entfernt.

2

Ausführen

Übergeben Sie die Anfrage an callModel mit Tools und Abbruchbedingungen. Das SDK übernimmt die Schleife, Wiederholungsversuche und das Streaming.

3

Fortsetzen

Speichern Sie den Zustand dauerhaft mit einem StateAccessor. Pausieren Sie zur menschlichen Überprüfung oder starten Sie nach einem Deployment neu und setzen Sie genau dort fort, wo Sie aufgehört haben.

Bringen Sie noch heute einen lang laufenden Agenten in Produktion

Holen Sie sich einen API-Schlüssel, kopieren Sie das Cookbook und bringen Sie noch diese Woche einen über mehrere Stunden laufenden, sprachfähigen Agenten in den Produktivbetrieb.