Dies ist ein unbedeutender Punkt, aber erwähnenswert. Einer der Vorteile eines Agenten ist die "Selbstheilung" - für eine kurze Aufgabe kann ein großes Sprachmodell (LLM) ein Tool aufrufen, das fehlschlägt. Es besteht eine gute Chance, dass ein gutes LLM in der Lage ist, eine Fehlermeldung oder einen Stack-Trace zu lesen und herauszufinden, was in nachfolgenden Tool-Aufrufen geändert werden muss.
Die meisten Frameworks implementieren dies, aber Sie können auch nur dies implementieren, ohne die anderen 11 Elemente implementieren zu müssen. Hier ist ein Beispiel:
thread = {"events": [initial_message]}
while True:
next_step = await determine_next_step(thread_to_prompt(thread))
thread["events"].append({
"type": next_step.intent,
"data": next_step,
})
try:
result = await handle_next_step(thread, next_step) # 我们的 switch 语句
except Exception as e:
# 如果我们得到一个错误,我们可以将它添加到上下文窗口中再试一次
thread["events"].append({
"type": 'error',
"data": format_error(e),
})
# 在这里循环,或者做任何其他事情来尝试恢复
Vielleicht möchten Sie einen errorCounter für bestimmte Werkzeugaufrufe implementieren, die Anzahl der Versuche für ein einzelnes Werkzeug auf etwa 3 begrenzen oder eine andere Logik verwenden, die Ihrem Anwendungsfall entspricht.
consecutive_errors = 0
while True:
# ... 现有代码 ...
try:
result = await handle_next_step(thread, next_step)
thread["events"].append({
"type": next_step.intent + '_result',
data: result,
})
# 成功!重置错误计数器
consecutive_errors = 0
except Exception as e:
consecutive_errors += 1
if consecutive_errors < 3:
# 进行循环并重试
thread["events"].append({
"type": 'error',
"data": format_error(e),
})
else:
# 中断循环,重置部分上下文窗口,上报给人类,或做任何你想做的事
break
}
}
Wenn ein bestimmter Schwellenwert für kontinuierliche Fehler erreicht ist, kann es ein guter Zeitpunkt sein, um Bericht an die Menschheit entweder durch Modellierung von Entscheidungen oder durch deterministische Übernahme des Kontrollflusses.
Vorteile:
- SelbstheilungEin umfangreiches Sprachmodell kann die Fehlermeldungen lesen und herausfinden, was bei nachfolgenden Aufrufen des Tools geändert werden muss.
- Haltbarkeitselbst wenn ein Werkzeugaufruf fehlschlägt, kann die Intelligenz weiterlaufen
Ich bin sicher, dass Sie feststellen werden, dass Ihre Intelligenz außer Kontrolle geraten kann, wenn Sie diese Methode zu oft anwenden, und dass Sie die gleichen Fehler immer wiederholen.
Zu diesem Zeitpunkt.Element 8 - Übernehmen Sie die Kontrolle über Ihren Kontrollfluss im Gesang antworten Element 3 - Übernehmen Sie die Kontrolle über Ihre Contextual Builds ist sehr nützlich - Sie müssen nicht nur die ursprüngliche Fehlermeldung wieder einfügen, sondern können ihre Darstellung komplett umgestalten, frühere Ereignisse aus dem Kontextfenster entfernen oder einen beliebigen deterministischen Ansatz wählen, um den Smart Body wieder auf den richtigen Weg zu bringen.
Aber die wichtigste Methode, um zu verhindern, dass Fehler aus dem Ruder laufen, ist die Annahme Element 10 - Kleine, konzentrierte Intelligenz .