Kullanım örneği

Decisions API ile ajanın sonraki eylemi

Bir ajan döngüsü sonlu kararlar dizisidir: aracı çağır, kullanıcıya sor, bitir. Bir karar çağrısı sonraki eylemi seçer ve her seçeneğin olasılığını döndürür — ayrıştırılacak serbest metin yok, doğrulanacak araç şeması yok.

Güncellendi

Ajan döngüsü bir choice sorusu olarak

Her döngü iterasyonu modele mevcut durumu verir ve tek bir sonlu soru sorar: sırada ne var. Yanıt, adlandırılmış eylemlerinizden biri artı bir confidence'dır — tam da döngü çalıştırıcısının ihtiyaç duyduğu sözleşme.

Seçenekler bildirildiği için model, döngünüzün uygulamadığı bir eylemi asla döndüremez. Geçersiz çıktı prompt disipliniyle değil, yapı gereği imkânsızdır.

Sonraki eylem kararı

// 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.
}

Ajana dürüst bir çıkış verin

criteria'da her zaman bir kaçış eylemi bulundurun — ask_user ya da finish. Duramayan bir ajan iş uydurur; dürüst bir çıkış 'bitti' ya da 'tıkandım'ı birinci sınıf yanıta çevirir.

Aynı çağrıda bağımsız bir noul sorusu — 'görev tamamen bitti mi' — da sorarak choice yanıtını çapraz doğrulayabilirsiniz.

Otonomiyi confidence'a bağlayın

Confidence yanıtı politikaya çevirir: yüksek güvenli adımlar — diyelim 0.8 ve üzeri — gözetimsiz çalışsın, düşük güvenliler ask_user'a ya da insan incelemesine gitsin. İkinci seçeneğin olasılığı adımın ne kadar çekişmeli olduğunu söyler.

Yalnızca kazananı değil dağılımı da kaydedin: 0.51'e 0.49 ile eşiği geçen bir adım ikinci bir bakışı hak eder.

Bir adımın maliyeti

Başarılı bir çağrı 1 kredidir — 1 ya da 6 soru fark etmez. Yani sonraki eylem choice'ı artı bitiş kontrolü hâlâ döngü adımı başına bir kredidir.

SSS

Tool calling'den farkı ne?

Tool calling bir fonksiyon seçip argümanlarını üretir — biçim açık uçludur. Karar çağrısı, adlandırılmış eylemlerinizden birini seçenek başına olasılıkla seçer ve serbest argüman içermez; çıktı yapı gereği kısıtlıdır.

state'e ne konur?

Modelin karar için ihtiyaç duyduğu her şey: ilerlemenin özet hali, son araç sonucu, kalan adımlar ve kısıtlar. state bir string, JSON nesnesi ya da metin dizisi kabul eder.

Tek çağrı sonraki eylemden fazlasını kontrol edebilir mi?

Evet — bir çağrı 6 soruya kadar taşır. Sonraki eylem choice'ını noul 'görev bitti mi' kontrolüyle ya da bekleyen adımın risk score'uyla birleştirin.

Confidence hep düşükse ne olur?

Genelde eylem listesi çok incedir ya da state'te sinyal eksiktir. Neredeyse aynı eylemleri birleştirin, state'i zenginleştirin ve ask_user'ı modelin dürüstçe seçebileceği bir yedek olarak tutun.

Bir ajan adımı çalıştırın

Yeni ziyaretçilere bir ücretsiz deneme kararı — döngü durumunuzu oyun alanına yapıştırıp sonraki eylem dağılımını görün.