EvaluationAgent 🧐
Das Ziel des EvaluationAgent ist es zu bewerten, ob eine Session oder Round erfolgreich abgeschlossen wurde. Der EvaluationAgent beurteilt die Leistung des HostAgent und AppAgent bei der Erfüllung der Anfrage. Sie können in der Datei config_dev.yaml konfigurieren, ob der EvaluationAgent aktiviert werden soll. Die detaillierte Dokumentation finden Sie hier.
Hinweis
Der EvaluationAgent ist vollständig LLM-gesteuert und führt Auswertungen basierend auf den Aktionsverläufen und Screenshots durch. Er ist möglicherweise nicht zu 100 % genau, da LLMs Fehler machen können.
Wir veranschaulichen den Auswertungsprozess in der folgenden Abbildung
Konfiguration
Um den EvaluationAgent zu aktivieren, können Sie die folgenden Parameter in der Datei config_dev.yaml konfigurieren, um den Status des Aufgabenschlusses auf verschiedenen Ebenen zu bewerten
| Konfigurationsoption | Beschreibung | Typ | Standardwert |
|---|---|---|---|
EVA_SESSION |
Ob die Sitzung in die Auswertung einbezogen werden soll. | Boolean | True |
EVA_ROUND |
Ob die Runde in die Auswertung einbezogen werden soll. | Boolean | False |
EVA_ALL_SCREENSHOTS |
Ob alle Screenshots in die Auswertung einbezogen werden sollen. | Boolean | True |
Evaluations-Inputs
Der EvaluationAgent nimmt die folgenden Eingaben zur Bewertung entgegen
| Input | Beschreibung | Typ |
|---|---|---|
| Benutzeranfrage | Die Benutzeranfrage, die bewertet werden soll. | String |
| APIs Beschreibung | Die Beschreibung der während der Ausführung verwendeten APIs. | Liste von Zeichenketten |
| Aktionsverläufe | Die vom HostAgent und AppAgent ausgeführten Aktionsverläufe. |
Liste von Zeichenketten |
| Bildschirmfotos | Die während der Ausführung aufgenommenen Screenshots. | Liste der Bilder |
Weitere Details zur Konstruktion der Eingaben finden Sie in der Klasse EvaluationAgentPrompter in ufo/prompter/eva_prompter.py.
Tipp
Sie können in der Datei config_dev.yaml unter EVA_ALL_SCREENSHOTS konfigurieren, ob alle Screenshots oder nur der erste und letzte Screenshot zur Auswertung verwendet werden sollen.
Evaluations-Outputs
Der EvaluationAgent generiert nach der Auswertung die folgenden Ausgaben
| Ausgabe | Beschreibung | Typ |
|---|---|---|
| Grund | Der detaillierte Grund für Ihr Urteil, durch Beobachtung der Screenshot-Unterschiede und der |
String |
| Teilbewertungen | Die Teilbewertung der Auswertung durch Zerlegung der Auswertung in mehrere Teilziele. | Liste von Wörterbüchern |
| vollständig | Der Abschlussstatus der Auswertung, kann ja, nein oder unsicher sein. |
String |
Unten ist ein Beispiel für die Auswertungsausgabe
{
"reason": "The agent successfully completed the task of sending 'hello' to Zac on Microsoft Teams.
The initial screenshot shows the Microsoft Teams application with the chat window of Chaoyun Zhang open.
The agent then focused on the chat window, input the message 'hello', and clicked the Send button.
The final screenshot confirms that the message 'hello' was sent to Zac.",
"sub_scores": {
"correct application focus": "yes",
"correct message input": "yes",
"message sent successfully": "yes"
},
"complete": "yes"}
Info
Das Protokoll der Auswertungsergebnisse wird in der Datei logs/{task_name}/evaluation.log gespeichert.
Der EvaluationAgent verwendet den CoT-Mechanismus (Chain-of-Thought), um zuerst die Auswertung in mehrere Teilziele zu zerlegen und dann jedes Teilziel separat zu bewerten. Die Teilbewertungen werden dann aggregiert, um den Gesamtstatus des Abschlusses der Auswertung zu bestimmen.
Referenz
Basiert auf: BasicAgent
Der Agent für die Auswertung.
Initialisiert den FollowAgent. :agent_type: Der Typ des Agenten. :is_visual: Das Flag, das angibt, ob der Agent visuell ist oder nicht.
Quellcode in agents/agent/evaluation_agent.py
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | |
status_manager Eigenschaft
Ruft den Statusmanager ab.
evaluate(request, log_path, eva_all_screenshots=True)
Bewertet den Abschluss der Aufgabe.
| Parameter |
|
|---|
| Rückgabe |
|
|---|
Quellcode in agents/agent/evaluation_agent.py
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | |
get_prompter(is_visual, prompt_template, example_prompt_template, api_prompt_template, root_name=None)
Ruft den Prompter für den Agenten ab.
Quellcode in agents/agent/evaluation_agent.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | |
message_constructor(log_path, request, eva_all_screenshots=True)
Konstruiert die Nachricht.
| Parameter |
|
|---|
| Rückgabe |
|
|---|
Quellcode in agents/agent/evaluation_agent.py
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | |
print_response(response_dict)
Gibt die Antwort der Auswertung aus.
| Parameter |
|
|---|
Quellcode in agents/agent/evaluation_agent.py
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | |
process_comfirmation()
Bestätigung, tut derzeit nichts.
Quellcode in agents/agent/evaluation_agent.py
119 120 121 122 123 | |