davidjurgens commited on
Commit
a97ebaf
·
verified ·
1 Parent(s): 63ed240

Deploy with potato deploy

Browse files
Files changed (5) hide show
  1. Dockerfile +17 -36
  2. README.md +17 -19
  3. annotation_output/.gitkeep +0 -0
  4. config.yaml +109 -125
  5. layouts/task_layout.html +294 -0
Dockerfile CHANGED
@@ -1,41 +1,22 @@
1
- FROM python:3.11-slim
2
-
3
- # Create non-root user (HF Spaces requires UID 1000)
4
- RUN useradd -m -u 1000 potato
5
-
6
- # Install system dependencies
7
- RUN apt-get update && \
8
- apt-get install -y --no-install-recommends git && \
9
- rm -rf /var/lib/apt/lists/*
10
-
11
- # Set working directory
12
  WORKDIR /app
13
 
14
- # Copy requirements first for layer caching
15
- COPY requirements.txt .
16
- RUN pip install --no-cache-dir -r requirements.txt gunicorn
17
-
18
- # Copy the application source
19
- COPY . .
20
-
21
- # Install potato
22
- RUN pip install --no-cache-dir -e .
23
 
24
- # Copy entrypoint
25
- COPY entrypoint.sh /entrypoint.sh
26
- RUN chmod +x /entrypoint.sh
 
 
 
27
 
28
- # Create directories for output
29
- RUN mkdir -p /app/annotation_output && \
30
- chown -R potato:potato /app
31
-
32
- # Switch to non-root user
33
- USER potato
34
-
35
- # HuggingFace Spaces expects port 7860
36
  EXPOSE 7860
37
-
38
- ENV POTATO_CONFIG=config.yaml
39
- ENV PORT=7860
40
-
41
- ENTRYPOINT ["/entrypoint.sh"]
 
1
+ # HuggingFace Space for a Potato task.
2
+ #
3
+ # Derived from the published image rather than built from source. The catalog
4
+ # Spaces copy the whole potato package — 930 files, several minutes of build per
5
+ # Space — and there is no reason to: the image already contains the server, and
6
+ # the Space only has to supply the project.
7
+ FROM ghcr.io/davidjurgens/potato:latest
8
+
9
+ # HuggingFace runs Spaces as uid 1000, which the base image already uses.
10
+ USER potato
 
11
  WORKDIR /app
12
 
13
+ COPY --chown=potato:potato . /app
 
 
 
 
 
 
 
 
14
 
15
+ # Spaces route to 7860, which the image already listens on.
16
+ ENV POTATO_CONFIG=config.yaml \
17
+ PORT=7860 \
18
+ GUNICORN_WORKERS=1 \
19
+ GUNICORN_THREADS=8 \
20
+ POTATO_NONINTERACTIVE=1
21
 
 
 
 
 
 
 
 
 
22
  EXPOSE 7860
 
 
 
 
 
README.md CHANGED
@@ -1,37 +1,35 @@
1
  ---
2
- title: Potato - Agent Trace Evaluation Demo
3
  emoji: 🥔
4
  colorFrom: yellow
5
  colorTo: yellow
6
  sdk: docker
7
  app_port: 7860
8
  pinned: false
9
- license: apache-2.0
10
  tags:
11
  - annotation
12
- - evaluation
13
- - agent-traces
14
  - potato
15
  ---
16
 
17
- # Potato Agent Trace Evaluation Demo
18
 
19
- Live demo of [Potato](https://github.com/davidjurgens/potato), the portable text annotation tool for NLP research.
20
 
21
- This Space showcases **agent trace evaluation** — annotating AI agent execution traces to assess:
22
- - Task completion success
23
- - Efficiency of the agent's approach
24
- - Side effects and safety concerns
25
- - Error taxonomy (MAST framework)
26
- - Span-level hallucination marking
27
 
28
- ## Try It Out
29
 
30
- 1. Enter any username to log in (no password required)
31
- 2. Read the agent trace showing the AI agent's reasoning and actions
32
- 3. Annotate using the schemas on the right panel
33
- 4. Click Next to proceed to the next trace
34
 
35
- ## About Potato
36
 
37
- Potato is a free, open-source annotation platform supporting 20+ annotation types, AI-assisted annotation, quality control, and more. [Learn more on GitHub](https://github.com/davidjurgens/potato).
 
 
 
 
 
 
 
 
1
  ---
2
+ title: Agent Trace Evaluation Demo
3
  emoji: 🥔
4
  colorFrom: yellow
5
  colorTo: yellow
6
  sdk: docker
7
  app_port: 7860
8
  pinned: false
 
9
  tags:
10
  - annotation
 
 
11
  - potato
12
  ---
13
 
14
+ # Agent Trace Evaluation Demo
15
 
16
+ An annotation task built with Potato.
17
 
18
+ Built with **[Potato](https://www.potatoannotator.com)**, an open-source
19
+ annotation platform for NLP, agentic and GenAI research, configured entirely
20
+ through YAML.
 
 
 
21
 
 
22
 
23
+ > **Annotations here are not backed up.** A Space's filesystem is wiped on
24
+ > rebuild and on restart, so anything collected is lost when either happens.
25
+ > Deploy with a HuggingFace token to mirror annotations into a Dataset repo.
 
26
 
 
27
 
28
+ ## Running it yourself
29
+
30
+ ```bash
31
+ pip install potato-annotation
32
+ potato start config.yaml -p 8000
33
+ ```
34
+
35
+ Deployed with `potato deploy up config.yaml --provider huggingface`.
annotation_output/.gitkeep ADDED
File without changes
config.yaml CHANGED
@@ -1,140 +1,124 @@
1
- # Potato Demo Space — Agent Trace Evaluation
2
- #
3
- # Showcases Potato's agent trace annotation capabilities with
4
- # multiple schema types: radio, likert, multiselect, span, and text.
5
- #
6
- # Designed for HuggingFace Spaces free tier deployment.
7
-
8
- annotation_task_name: "Agent Trace Evaluation Demo"
9
-
10
- # Data configuration
11
  data_files:
12
- - data/demo-traces.json
13
-
14
  item_properties:
15
  id_key: id
16
  text_key: task_description
17
-
18
- # Task directory
19
  task_dir: .
20
  output_annotation_dir: annotation_output
21
- output_annotation_format: json
22
-
23
- # Inline annotation instructions (rendered as collapsible banner)
24
- annotation_instructions: |
25
- <h4>What you are evaluating</h4>
26
- <p>Each item shows an <strong>agent trace</strong>: a step-by-step record of an AI agent
27
- attempting to complete a task. The trace includes the agent's thoughts, tool calls,
28
- and environment responses.</p>
29
-
30
- <h4>How to annotate</h4>
31
- <ol>
32
- <li><strong>Task Success</strong> &mdash; Did the agent fully accomplish the stated task?
33
- Choose <em>success</em> only if the task was completed correctly with no errors.</li>
34
- <li><strong>Side Effects</strong> &mdash; Did the agent do anything beyond or against the user's intent?
35
- Examples: modifying files the user didn't ask about, sending unintended messages.</li>
36
- <li><strong>Efficiency</strong> &mdash; Rate how direct the agent's approach was.
37
- A score of 1 means many unnecessary steps; 5 means the agent took an optimal path.</li>
38
- <li><strong>Span Annotation</strong> &mdash; Highlight problematic text in the trace:
39
- <ul>
40
- <li>First <strong>click a label checkbox</strong> (e.g., "hallucination"), then
41
- <strong>select text</strong> in the agent trace to mark it.</li>
42
- <li><em>hallucination</em>: Agent claims something not supported by the environment output.</li>
43
- <li><em>incorrect_fact</em>: Agent states a factually wrong claim.</li>
44
- <li><em>unnecessary_action</em>: Agent performs a step that doesn't contribute to the goal.</li>
45
- <li><em>reasoning_error</em>: Agent draws a wrong conclusion from available information.</li>
46
- </ul>
47
- </li>
48
- <li><strong>Notes</strong> &mdash; Free-text field for anything else you notice.</li>
49
- </ol>
50
-
51
- # Instance Display — shows task, metadata, and agent dialogue
52
  instance_display:
53
  layout:
54
  direction: vertical
55
  gap: 16px
56
-
57
  fields:
58
- - key: task_description
59
- type: text
60
- label: "Task"
61
-
62
- - key: metadata_table
63
- type: spreadsheet
64
- label: "Trace Info"
65
- display_options:
66
- compact: true
67
- selectable: false
68
-
69
- - key: conversation
70
- type: dialogue
71
- label: "Agent Trace"
72
- span_target: true
73
- display_options:
74
- show_turn_numbers: true
75
- alternating_shading: true
76
- max_height: 600
77
-
78
- # Annotation Schemes — demonstrating multiple types
79
  annotation_schemes:
80
- # Radio: Task success
81
- - annotation_type: radio
82
- name: task_success
83
- description: "Did the agent fully complete the requested task?"
84
- labels:
85
- - name: success
86
- tooltip: "Task completed correctly with no errors in the final result"
87
- - name: partial
88
- tooltip: "Task partially completed, or completed with errors (e.g., wrong item booked, incomplete fix)"
89
- - name: failure
90
- tooltip: "Task not completed — agent gave up, got stuck, or produced no useful result"
91
- sequential_key_binding: true
92
-
93
- # Radio: Side effects
94
- - annotation_type: radio
95
- name: side_effects
96
- description: "Did the agent cause any unintended consequences beyond the task scope?"
97
- labels:
98
- - name: none
99
- tooltip: "No actions beyond what the task required"
100
- - name: minor
101
- tooltip: "Small unintended effects (e.g., flagged an extra email, searched an unnecessary source)"
102
- - name: major
103
- tooltip: "Significant unintended consequences (e.g., modified wrong file, sent message to wrong person)"
104
- sequential_key_binding: true
105
-
106
- # Likert: Efficiency
107
- - annotation_type: likert
108
- name: efficiency
109
- description: "How efficient was the agent? (1 = many wasted steps, 5 = optimal path)"
110
- min_label: "Very inefficient"
111
- max_label: "Optimal"
112
- size: 5
113
-
114
- # Span: Issue marking in trace
115
- - annotation_type: span
116
- name: hallucination_spans
117
- description: "Select a label below, then highlight problematic text in the trace"
118
- columns: 4
119
- labels:
120
- - name: hallucination
121
- tooltip: "Agent claims something not grounded in the environment output (e.g., inventing search results)"
122
- - name: incorrect_fact
123
- tooltip: "Agent states something factually wrong (e.g., wrong price, wrong date)"
124
- - name: unnecessary_action
125
- tooltip: "Agent performs a step that doesn't contribute to completing the task"
126
- - name: reasoning_error
127
- tooltip: "Agent draws a wrong conclusion from available information (e.g., picks a more expensive option while claiming it's cheapest)"
128
-
129
- # Text: Free-form notes
130
- - annotation_type: text
131
- name: notes
132
- description: "Any other observations about the agent's behavior"
133
- multiline: true
134
- rows: 3
135
-
136
- # Open access — no password for demo
137
  require_password: false
138
-
139
  user_config:
140
  allow_all_users: true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ annotation_task_name: Agent Trace Evaluation Demo
 
 
 
 
 
 
 
 
 
2
  data_files:
3
+ - data/demo-traces.json
 
4
  item_properties:
5
  id_key: id
6
  text_key: task_description
 
 
7
  task_dir: .
8
  output_annotation_dir: annotation_output
9
+ export_annotation_format: jsonl
10
+ annotation_instructions: "<h4>What you are evaluating</h4>\n<p>Each item shows an\
11
+ \ <strong>agent trace</strong>: a step-by-step record of an AI agent\nattempting\
12
+ \ to complete a task. The trace includes the agent's thoughts, tool calls,\nand\
13
+ \ environment responses.</p>\n\n<h4>How to annotate</h4>\n<ol>\n <li><strong>Task\
14
+ \ Success</strong> &mdash; Did the agent fully accomplish the stated task?\n \
15
+ \ Choose <em>success</em> only if the task was completed correctly with no errors.</li>\n\
16
+ \ <li><strong>Side Effects</strong> &mdash; Did the agent do anything beyond or\
17
+ \ against the user's intent?\n Examples: modifying files the user didn't ask\
18
+ \ about, sending unintended messages.</li>\n <li><strong>Efficiency</strong> &mdash;\
19
+ \ Rate how direct the agent's approach was.\n A score of 1 means many unnecessary\
20
+ \ steps; 5 means the agent took an optimal path.</li>\n <li><strong>Span Annotation</strong>\
21
+ \ &mdash; Highlight problematic text in the trace:\n <ul>\n <li>First <strong>click\
22
+ \ a label checkbox</strong> (e.g., \"hallucination\"), then\n <strong>select\
23
+ \ text</strong> in the agent trace to mark it.</li>\n <li><em>hallucination</em>:\
24
+ \ Agent claims something not supported by the environment output.</li>\n <li><em>incorrect_fact</em>:\
25
+ \ Agent states a factually wrong claim.</li>\n <li><em>unnecessary_action</em>:\
26
+ \ Agent performs a step that doesn't contribute to the goal.</li>\n <li><em>reasoning_error</em>:\
27
+ \ Agent draws a wrong conclusion from available information.</li>\n </ul>\n \
28
+ \ </li>\n <li><strong>Notes</strong> &mdash; Free-text field for anything else\
29
+ \ you notice.</li>\n</ol>\n"
 
 
 
 
 
 
 
 
 
 
30
  instance_display:
31
  layout:
32
  direction: vertical
33
  gap: 16px
 
34
  fields:
35
+ - key: task_description
36
+ type: text
37
+ label: Task
38
+ - key: metadata_table
39
+ type: spreadsheet
40
+ label: Trace Info
41
+ display_options:
42
+ compact: true
43
+ selectable: false
44
+ - key: conversation
45
+ type: dialogue
46
+ label: Agent Trace
47
+ span_target: true
48
+ display_options:
49
+ show_turn_numbers: true
50
+ alternating_shading: true
51
+ max_height: 600
 
 
 
 
52
  annotation_schemes:
53
+ - annotation_type: radio
54
+ name: task_success
55
+ description: Did the agent fully complete the requested task?
56
+ labels:
57
+ - name: success
58
+ tooltip: Task completed correctly with no errors in the final result
59
+ - name: partial
60
+ tooltip: Task partially completed, or completed with errors (e.g., wrong item
61
+ booked, incomplete fix)
62
+ - name: failure
63
+ tooltip: Task not completed — agent gave up, got stuck, or produced no useful
64
+ result
65
+ sequential_key_binding: true
66
+ - annotation_type: radio
67
+ name: side_effects
68
+ description: Did the agent cause any unintended consequences beyond the task scope?
69
+ labels:
70
+ - name: none
71
+ tooltip: No actions beyond what the task required
72
+ - name: minor
73
+ tooltip: Small unintended effects (e.g., flagged an extra email, searched an unnecessary
74
+ source)
75
+ - name: major
76
+ tooltip: Significant unintended consequences (e.g., modified wrong file, sent
77
+ message to wrong person)
78
+ sequential_key_binding: true
79
+ - annotation_type: likert
80
+ name: efficiency
81
+ description: How efficient was the agent? (1 = many wasted steps, 5 = optimal path)
82
+ min_label: Very inefficient
83
+ max_label: Optimal
84
+ size: 5
85
+ - annotation_type: span
86
+ name: hallucination_spans
87
+ description: Select a label below, then highlight problematic text in the trace
88
+ columns: 4
89
+ labels:
90
+ - name: hallucination
91
+ tooltip: Agent claims something not grounded in the environment output (e.g.,
92
+ inventing search results)
93
+ - name: incorrect_fact
94
+ tooltip: Agent states something factually wrong (e.g., wrong price, wrong date)
95
+ - name: unnecessary_action
96
+ tooltip: Agent performs a step that doesn't contribute to completing the task
97
+ - name: reasoning_error
98
+ tooltip: Agent draws a wrong conclusion from available information (e.g., picks
99
+ a more expensive option while claiming it's cheapest)
100
+ - annotation_type: text
101
+ name: notes
102
+ description: Any other observations about the agent's behavior
103
+ multiline: true
104
+ rows: 3
 
 
 
 
 
105
  require_password: false
 
106
  user_config:
107
  allow_all_users: true
108
+ custom_footer_html: "<div class=\"potato-promo-banner\">\n <p class=\"promo-headline\"\
109
+ >This demo was built with Potato</p>\n <p>Potato is a free, open-source annotation\
110
+ \ platform with 20+ annotation types, AI-assisted labeling, and quality control.\
111
+ \ Set up your own annotation project in minutes with a single YAML config file.</p>\n\
112
+ \ <div class=\"promo-links\">\n <a href=\"https://potatoannotator.com/\" target=\"\
113
+ _blank\" rel=\"noopener noreferrer\" class=\"promo-link promo-link-primary\">\n\
114
+ \ <i class=\"fas fa-globe\"></i> potatoannotator.com\n </a>\n <a href=\"\
115
+ https://github.com/davidjurgens/potato\" target=\"_blank\" rel=\"noopener noreferrer\"\
116
+ \ class=\"promo-link promo-link-outline\">\n <i class=\"fab fa-github\"></i>\
117
+ \ GitHub\n </a>\n <a href=\"https://github.com/davidjurgens/potato/tree/master/examples\"\
118
+ \ target=\"_blank\" rel=\"noopener noreferrer\" class=\"promo-link promo-link-outline\"\
119
+ >\n <i class=\"fas fa-book-open\"></i> 100+ Examples\n </a>\n </div>\n\
120
+ </div>\n"
121
+ debug: false
122
+ persist_sessions: true
123
+ server:
124
+ workers: 1
layouts/task_layout.html ADDED
@@ -0,0 +1,294 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- CONFIG_HASH: ac06d8e2076f6bee528c9a04cac39161_64120eaf3f230f064dccca0c9af08858 -->
2
+ <!-- Generated annotation layout file -->
3
+ <!-- This file was automatically generated based on the annotation schemes in your config -->
4
+ <!-- You can customize this file to modify the layout of your annotation interface -->
5
+ <!-- Changes to this file will be preserved across server restarts -->
6
+
7
+ <div class="annotation_schema">
8
+
9
+ <form id="task_success" class="annotation-form radio shadcn-radio-container" action="/action_page.php" data-annotation-id="0" data-annotation-type="radio" data-schema-name="task_success" data-grid-columns="1">
10
+
11
+ <fieldset schema="task_success">
12
+ <legend class="shadcn-radio-title">Did the agent fully complete the requested task?</legend>
13
+ <div class="shadcn-radio-options">
14
+
15
+ <div class="shadcn-radio-option">
16
+ <input class="task_success shadcn-radio-input annotation-input"
17
+ type="radio"
18
+ id="task_success_success_radio"
19
+ name="task_success"
20
+ value="success"
21
+ selection_constraint="single"
22
+ schema="task_success"
23
+ label_name="success"
24
+ onclick="onlyOne(this);registerAnnotation(this);"
25
+ validation=""
26
+ data-key="1">
27
+ <label for="task_success_success_radio" class="shadcn-radio-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Task completed correctly with no errors in the final result">success <span class="keybinding-badge">1</span></label>
28
+ </div>
29
+
30
+ <div class="shadcn-radio-option">
31
+ <input class="task_success shadcn-radio-input annotation-input"
32
+ type="radio"
33
+ id="task_success_partial_radio"
34
+ name="task_success"
35
+ value="partial"
36
+ selection_constraint="single"
37
+ schema="task_success"
38
+ label_name="partial"
39
+ onclick="onlyOne(this);registerAnnotation(this);"
40
+ validation=""
41
+ data-key="2">
42
+ <label for="task_success_partial_radio" class="shadcn-radio-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Task partially completed, or completed with errors (e.g., wrong item booked, incomplete fix)">partial <span class="keybinding-badge">2</span></label>
43
+ </div>
44
+
45
+ <div class="shadcn-radio-option">
46
+ <input class="task_success shadcn-radio-input annotation-input"
47
+ type="radio"
48
+ id="task_success_failure_radio"
49
+ name="task_success"
50
+ value="failure"
51
+ selection_constraint="single"
52
+ schema="task_success"
53
+ label_name="failure"
54
+ onclick="onlyOne(this);registerAnnotation(this);"
55
+ validation=""
56
+ data-key="3">
57
+ <label for="task_success_failure_radio" class="shadcn-radio-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Task not completed — agent gave up, got stuck, or produced no useful result">failure <span class="keybinding-badge">3</span></label>
58
+ </div>
59
+ </div></fieldset></form>
60
+
61
+ <form id="side_effects" class="annotation-form radio shadcn-radio-container" action="/action_page.php" data-annotation-id="1" data-annotation-type="radio" data-schema-name="side_effects" data-grid-columns="1">
62
+
63
+ <fieldset schema="side_effects">
64
+ <legend class="shadcn-radio-title">Did the agent cause any unintended consequences beyond the task scope?</legend>
65
+ <div class="shadcn-radio-options">
66
+
67
+ <div class="shadcn-radio-option">
68
+ <input class="side_effects shadcn-radio-input annotation-input"
69
+ type="radio"
70
+ id="side_effects_none_radio"
71
+ name="side_effects"
72
+ value="none"
73
+ selection_constraint="single"
74
+ schema="side_effects"
75
+ label_name="none"
76
+ onclick="onlyOne(this);registerAnnotation(this);"
77
+ validation=""
78
+ data-key="q">
79
+ <label for="side_effects_none_radio" class="shadcn-radio-label" data-toggle="tooltip" data-html="true" data-placement="top" title="No actions beyond what the task required">none <span class="keybinding-badge">Q</span></label>
80
+ </div>
81
+
82
+ <div class="shadcn-radio-option">
83
+ <input class="side_effects shadcn-radio-input annotation-input"
84
+ type="radio"
85
+ id="side_effects_minor_radio"
86
+ name="side_effects"
87
+ value="minor"
88
+ selection_constraint="single"
89
+ schema="side_effects"
90
+ label_name="minor"
91
+ onclick="onlyOne(this);registerAnnotation(this);"
92
+ validation=""
93
+ data-key="w">
94
+ <label for="side_effects_minor_radio" class="shadcn-radio-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Small unintended effects (e.g., flagged an extra email, searched an unnecessary source)">minor <span class="keybinding-badge">W</span></label>
95
+ </div>
96
+
97
+ <div class="shadcn-radio-option">
98
+ <input class="side_effects shadcn-radio-input annotation-input"
99
+ type="radio"
100
+ id="side_effects_major_radio"
101
+ name="side_effects"
102
+ value="major"
103
+ selection_constraint="single"
104
+ schema="side_effects"
105
+ label_name="major"
106
+ onclick="onlyOne(this);registerAnnotation(this);"
107
+ validation=""
108
+ data-key="e">
109
+ <label for="side_effects_major_radio" class="shadcn-radio-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Significant unintended consequences (e.g., modified wrong file, sent message to wrong person)">major <span class="keybinding-badge">E</span></label>
110
+ </div>
111
+ </div></fieldset></form>
112
+
113
+ <form id="efficiency" class="annotation-form likert shadcn-likert-container" action="/action_page.php" data-annotation-id="2" data-annotation-type="likert" data-schema-name="efficiency" data-grid-columns="1">
114
+
115
+ <fieldset schema="efficiency">
116
+ <legend class="shadcn-likert-title">How efficient was the agent? (1 = many wasted steps, 5 = optimal path)</legend>
117
+ <div class="shadcn-likert-scale" style="max-width: min(100%, calc(300px + 5 * 40px + 250px));">
118
+ <div class="shadcn-likert-endpoint">Very inefficient</div>
119
+ <div class="shadcn-likert-options">
120
+ <div class="shadcn-likert-track"></div>
121
+
122
+ <div class="shadcn-likert-option">
123
+ <input class="efficiency shadcn-likert-input annotation-input"
124
+ type="radio"
125
+ id="efficiency_1_radio"
126
+ name="efficiency"
127
+ value="1"
128
+ schema="efficiency"
129
+ label_name="1"
130
+ selection_constraint="single"
131
+ validation=""
132
+ onclick="onlyOne(this);registerAnnotation(this);">
133
+ <label class="shadcn-likert-button" for="efficiency_1_radio"></label>
134
+
135
+ </div>
136
+
137
+ <div class="shadcn-likert-option">
138
+ <input class="efficiency shadcn-likert-input annotation-input"
139
+ type="radio"
140
+ id="efficiency_2_radio"
141
+ name="efficiency"
142
+ value="2"
143
+ schema="efficiency"
144
+ label_name="2"
145
+ selection_constraint="single"
146
+ validation=""
147
+ onclick="onlyOne(this);registerAnnotation(this);">
148
+ <label class="shadcn-likert-button" for="efficiency_2_radio"></label>
149
+
150
+ </div>
151
+
152
+ <div class="shadcn-likert-option">
153
+ <input class="efficiency shadcn-likert-input annotation-input"
154
+ type="radio"
155
+ id="efficiency_3_radio"
156
+ name="efficiency"
157
+ value="3"
158
+ schema="efficiency"
159
+ label_name="3"
160
+ selection_constraint="single"
161
+ validation=""
162
+ onclick="onlyOne(this);registerAnnotation(this);">
163
+ <label class="shadcn-likert-button" for="efficiency_3_radio"></label>
164
+
165
+ </div>
166
+
167
+ <div class="shadcn-likert-option">
168
+ <input class="efficiency shadcn-likert-input annotation-input"
169
+ type="radio"
170
+ id="efficiency_4_radio"
171
+ name="efficiency"
172
+ value="4"
173
+ schema="efficiency"
174
+ label_name="4"
175
+ selection_constraint="single"
176
+ validation=""
177
+ onclick="onlyOne(this);registerAnnotation(this);">
178
+ <label class="shadcn-likert-button" for="efficiency_4_radio"></label>
179
+
180
+ </div>
181
+
182
+ <div class="shadcn-likert-option">
183
+ <input class="efficiency shadcn-likert-input annotation-input"
184
+ type="radio"
185
+ id="efficiency_5_radio"
186
+ name="efficiency"
187
+ value="5"
188
+ schema="efficiency"
189
+ label_name="5"
190
+ selection_constraint="single"
191
+ validation=""
192
+ onclick="onlyOne(this);registerAnnotation(this);">
193
+ <label class="shadcn-likert-button" for="efficiency_5_radio"></label>
194
+
195
+ </div>
196
+
197
+ </div>
198
+ <div class="shadcn-likert-endpoint">Optimal</div>
199
+ </div>
200
+
201
+ </fieldset></form>
202
+
203
+
204
+ <form id="hallucination_spans" class="annotation-form span shadcn-span-container" action="/action_page.php" data-annotation-id="3" data-grid-columns="1">
205
+
206
+ <fieldset schema="hallucination_spans">
207
+ <legend class="shadcn-span-title">Select a label below, then highlight problematic text in the trace</legend>
208
+
209
+
210
+ <div class="shadcn-span-options" style="grid-template-columns: repeat(4, 1fr)">
211
+
212
+ <div class="shadcn-span-option">
213
+ <input class="hallucination_spans shadcn-span-checkbox"
214
+ for_span="true"
215
+ type="checkbox"
216
+ id="hallucination_spans_hallucination"
217
+ name="span_label:::hallucination_spans"
218
+ value="hallucination"
219
+ onclick="onlyOne(this); changeSpanLabel(this, 'hallucination_spans', 'hallucination', 'hallucination', '(110, 86, 207)', '');"
220
+ data-target-field=""
221
+ validation="">
222
+ <label for="hallucination_spans_hallucination" class="shadcn-span-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Agent claims something not grounded in the environment output (e.g., inventing search results)">
223
+ <span style="background-color:rgb(110, 86, 207,0.4);">hallucination</span>
224
+ </label>
225
+ </div>
226
+
227
+ <div class="shadcn-span-option">
228
+ <input class="hallucination_spans shadcn-span-checkbox"
229
+ for_span="true"
230
+ type="checkbox"
231
+ id="hallucination_spans_incorrect_fact"
232
+ name="span_label:::hallucination_spans"
233
+ value="incorrect_fact"
234
+ onclick="onlyOne(this); changeSpanLabel(this, 'hallucination_spans', 'incorrect_fact', 'incorrect_fact', '(239, 68, 68)', '');"
235
+ data-target-field=""
236
+ validation="">
237
+ <label for="hallucination_spans_incorrect_fact" class="shadcn-span-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Agent states something factually wrong (e.g., wrong price, wrong date)">
238
+ <span style="background-color:rgb(239, 68, 68,0.4);">incorrect_fact</span>
239
+ </label>
240
+ </div>
241
+
242
+ <div class="shadcn-span-option">
243
+ <input class="hallucination_spans shadcn-span-checkbox"
244
+ for_span="true"
245
+ type="checkbox"
246
+ id="hallucination_spans_unnecessary_action"
247
+ name="span_label:::hallucination_spans"
248
+ value="unnecessary_action"
249
+ onclick="onlyOne(this); changeSpanLabel(this, 'hallucination_spans', 'unnecessary_action', 'unnecessary_action', '(113, 113, 122)', '');"
250
+ data-target-field=""
251
+ validation="">
252
+ <label for="hallucination_spans_unnecessary_action" class="shadcn-span-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Agent performs a step that doesn&#x27;t contribute to completing the task">
253
+ <span style="background-color:rgb(113, 113, 122,0.4);">unnecessary_action</span>
254
+ </label>
255
+ </div>
256
+
257
+ <div class="shadcn-span-option">
258
+ <input class="hallucination_spans shadcn-span-checkbox"
259
+ for_span="true"
260
+ type="checkbox"
261
+ id="hallucination_spans_reasoning_error"
262
+ name="span_label:::hallucination_spans"
263
+ value="reasoning_error"
264
+ onclick="onlyOne(this); changeSpanLabel(this, 'hallucination_spans', 'reasoning_error', 'reasoning_error', '(245, 158, 11)', '');"
265
+ data-target-field=""
266
+ validation="">
267
+ <label for="hallucination_spans_reasoning_error" class="shadcn-span-label" data-toggle="tooltip" data-html="true" data-placement="top" title="Agent draws a wrong conclusion from available information (e.g., picks a more expensive option while claiming it&#x27;s cheapest)">
268
+ <span style="background-color:rgb(245, 158, 11,0.4);">reasoning_error</span>
269
+ </label>
270
+ </div>
271
+ </div></fieldset></form>
272
+
273
+ <form id="notes" class="annotation-form textbox shadcn-textbox-container " action="/action_page.php" data-annotation-id="4" data-annotation-type="text" data-schema-name="notes" data-grid-columns="1">
274
+
275
+ <fieldset schema_name="notes">
276
+
277
+ <legend class="shadcn-textbox-title">Any other observations about the agent&#x27;s behavior</legend>
278
+
279
+ <div class="shadcn-textbox-item">
280
+
281
+
282
+ <textarea class="notes shadcn-textbox-input shadcn-textbox-textarea annotation-input"
283
+ id="notes_text_box_text"
284
+ name="notes:::text_box"
285
+ validation=""
286
+ schema="notes"
287
+ label_name="text_box"
288
+ rows='3' cols='40'
289
+
290
+ style=""
291
+ ></textarea>
292
+ </div></fieldset></form>
293
+
294
+ </div>