Use Case
Decisions API für die nächste Agenten-Aktion
Ein Agenten-Loop ist eine Folge endlicher Entscheidungen: Tool aufrufen, Nutzer fragen, fertig. Ein Decision-Call wählt die nächste Aktion und liefert eine Wahrscheinlichkeit pro Option — kein Freitext-Parsing, kein Tool-Schema zum Validieren.
Aktualisiert
Der Agenten-Loop als choice-Frage
Jede Iteration gibt dem Modell den aktuellen Zustand und stellt eine endliche Frage: was soll als Nächstes passieren. Die Antwort ist eine Ihrer benannten Aktionen plus Confidence — genau der Vertrag, den ein Loop-Runner braucht.
Weil die Optionen deklariert sind, kann das Modell nie eine Aktion zurückgeben, die Ihr Loop nicht implementiert. Ungültige Ausgabe ist konstruktionsbedingt unmöglich, nicht nur Prompt-Disziplin.
Next-Action-Entscheidung
// Agent loop: decisions-1 picks the next action each step.
type Action = "search_docs" | "call_tool" | "ask_user" | "finish";
async function decideNext(state: unknown): Promise<{ action: Action; confidence: number }> {
const res = await fetch("https://decisions-api.net/api/v1/decisions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DECISIONS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "decisions-1",
state, // string, JSON object, or array of text
questions: {
next: {
type: "choice",
instructions: "What should the agent do next?",
criteria: {
search_docs: "Look up documentation before acting.",
call_tool: "Run the next planned tool call.",
ask_user: "Stop and ask the user for clarification.",
finish: "The task is complete; produce the final answer.",
},
},
done: { type: "noul", instructions: "Is the user's task fully complete?" },
},
}),
});
const { answers } = await res.json();
return { action: answers.next.choice, confidence: answers.next.confidence };
}
const MAX_STEPS = 8;
async function runAgent(agentState: unknown) {
for (let step = 0; step < MAX_STEPS; step++) {
const { action, confidence } = await decideNext(agentState);
// Illustrative response: { action: "call_tool", confidence: 0.83 }
if (confidence < 0.8) { await askUser(agentState); continue; }
switch (action) {
case "finish": return;
case "search_docs": await searchDocs(agentState); break;
case "call_tool": await runTool(agentState); break;
case "ask_user": await askUser(agentState); break;
}
}
// MAX_STEPS reached: hand off to a human instead of looping forever.
}Geben Sie dem Agenten einen ehrlichen Ausweg
Immer eine Fluchtaktion — ask_user oder finish — in die criteria aufnehmen. Ein Agent ohne Stopp-Möglichkeit erfindet Arbeit; ein ehrlicher Ausweg macht 'fertig' oder 'ich stecke fest' zu erstklassigen Antworten.
Sie können im selben Call eine unabhängige noul-Frage stellen — 'ist die Aufgabe vollständig erledigt' — als Gegenprobe zum choice.
Autonomie an die Confidence koppeln
Confidence macht aus der Antwort eine Policy: Schritte mit hoher Confidence — etwa ab 0,8 — laufen unbeaufsichtigt, unsichere Schritte gehen an ask_user oder eine menschliche Review. Die Wahrscheinlichkeit der Zweitoption verrät, wie umstritten der Schritt war.
Loggen Sie die Verteilung, nicht nur den Sieger: Ein Schritt, der mit 0,51 zu 0,49 Ihren Schwellwert passiert, verdient einen zweiten Blick.
Was ein Schritt kostet
Ein erfolgreicher Call kostet 1 Credit, ob mit 1 oder 6 Fragen — eine Next-Action-choice plus Done-Check bleibt also ein Credit pro Loop-Schritt.
FAQ
Woran unterscheidet sich das von Tool Calling?
Tool Calling wählt eine Funktion und generiert deren Argumente — die Form ist offen. Ein Decision-Call wählt eine Ihrer benannten Aktionen mit Wahrscheinlichkeit pro Option und ohne Freiform-Argumente; die Ausgabe ist konstruktionsbedingt eingeschränkt.
Was gehört in den state?
Alles, was das Modell zum Entscheiden braucht: eine kompakte Fortschritts-Zusammenfassung, das letzte Tool-Ergebnis, verbleibende Schritte und Constraints. state akzeptiert String, JSON-Objekt oder Text-Array.
Kann ein Call mehr prüfen als die nächste Aktion?
Ja — ein Call fasst bis zu 6 Fragen. Kombinieren Sie die Next-Action-choice mit einem noul 'Aufgabe erledigt?'-Check oder einem score für das Risiko des anstehenden Schritts.
Was, wenn die Confidence immer niedrig ist?
Meist ist die Aktionsliste zu fein oder der state enthält zu wenig Signal. Verschmelzen Sie fast identische Aktionen, reichern Sie den state an und behalten Sie ask_user als ehrlichen Fallback.
Einen Agenten-Schritt ausführen
Eine kostenlose Testentscheidung für neue Besucher — Loop-State in den Playground einfügen und die Next-Action-Verteilung sehen.