Skip to content

Commit db6348d

Browse files
authored
Merge pull request #63 from vvincent1234/fix/update_custom_tool_calls
add trace path and fix tool_calls example
2 parents 68d0ea2 + e7ff2ff commit db6348d

File tree

2 files changed

+31
-16
lines changed

2 files changed

+31
-16
lines changed

src/agent/custom_massage_manager.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,14 @@ def __init__(
5959
self._add_message_with_tokens(self.system_prompt)
6060
tool_calls = [
6161
{
62-
'name': 'AgentOutput',
62+
'name': 'CustomAgentOutput',
6363
'args': {
6464
'current_state': {
65-
'evaluation_previous_goal': 'Unknown - No previous actions to evaluate.',
66-
'memory': '',
67-
'next_goal': 'Obtain task from user',
65+
'prev_action_evaluation': 'Unknown - No previous actions to evaluate.',
66+
'important_contents': '',
67+
'completed_contents': '',
68+
'thought': 'Now Google is open. Need to type OpenAI to search.',
69+
'summary': 'Type OpenAI to search.',
6870
},
6971
'action': [],
7072
},

webui.py

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ async def run_browser_agent(
4949
window_w,
5050
window_h,
5151
save_recording_path,
52+
save_trace_path,
5253
enable_recording,
5354
task,
5455
add_infos,
@@ -89,6 +90,7 @@ async def run_browser_agent(
8990
window_w=window_w,
9091
window_h=window_h,
9192
save_recording_path=save_recording_path,
93+
save_trace_path=save_trace_path,
9294
task=task,
9395
max_steps=max_steps,
9496
use_vision=use_vision,
@@ -104,6 +106,7 @@ async def run_browser_agent(
104106
window_w=window_w,
105107
window_h=window_h,
106108
save_recording_path=save_recording_path,
109+
save_trace_path=save_trace_path,
107110
task=task,
108111
add_infos=add_infos,
109112
max_steps=max_steps,
@@ -134,6 +137,7 @@ async def run_org_agent(
134137
window_w,
135138
window_h,
136139
save_recording_path,
140+
save_trace_path,
137141
task,
138142
max_steps,
139143
use_vision,
@@ -150,7 +154,7 @@ async def run_org_agent(
150154
)
151155
async with await browser.new_context(
152156
config=BrowserContextConfig(
153-
trace_path="./tmp/traces",
157+
trace_path=save_trace_path if save_trace_path else None,
154158
save_recording_path=save_recording_path if save_recording_path else None,
155159
no_viewport=False,
156160
browser_window_size=BrowserContextWindowSize(
@@ -184,6 +188,7 @@ async def run_custom_agent(
184188
window_w,
185189
window_h,
186190
save_recording_path,
191+
save_trace_path,
187192
task,
188193
add_infos,
189194
max_steps,
@@ -204,7 +209,7 @@ async def run_custom_agent(
204209
chrome_exe = None
205210
elif not os.path.exists(chrome_exe):
206211
raise ValueError(f"Chrome executable not found at {chrome_exe}")
207-
212+
208213
if chrome_use_data == "":
209214
chrome_use_data = None
210215

@@ -235,7 +240,7 @@ async def run_custom_agent(
235240
)
236241
async with await browser.new_context(
237242
config=BrowserContextConfig(
238-
trace_path="./tmp/result_processing",
243+
trace_path=save_trace_path if save_trace_path else None,
239244
save_recording_path=save_recording_path
240245
if save_recording_path
241246
else None,
@@ -407,7 +412,7 @@ def create_ui(theme_name="Ocean"):
407412
value=os.getenv(f"{llm_provider.value.upper()}_API_KEY", ""), # Default to .env value
408413
info="Your API key (leave blank to use .env)"
409414
)
410-
415+
411416
with gr.TabItem("🌐 Browser Settings", id=3):
412417
with gr.Group():
413418
with gr.Row():
@@ -452,6 +457,14 @@ def create_ui(theme_name="Ocean"):
452457
interactive=True, # Allow editing only if recording is enabled
453458
)
454459

460+
save_trace_path = gr.Textbox(
461+
label="Trace Path",
462+
placeholder="e.g. ./tmp/traces",
463+
value="./tmp/traces",
464+
info="Path to save Agent traces",
465+
interactive=True,
466+
)
467+
455468
with gr.TabItem("🤖 Run Agent", id=4):
456469
task = gr.Textbox(
457470
label="Task Description",
@@ -494,24 +507,24 @@ def create_ui(theme_name="Ocean"):
494507
model_thoughts_output = gr.Textbox(
495508
label="Model Thoughts", lines=3, show_label=True
496509
)
497-
510+
498511
with gr.TabItem("🎥 Recordings", id=6):
499512
def list_recordings(save_recording_path):
500513
if not os.path.exists(save_recording_path):
501514
return []
502-
515+
503516
# Get all video files
504517
recordings = glob.glob(os.path.join(save_recording_path, "*.[mM][pP]4")) + glob.glob(os.path.join(save_recording_path, "*.[wW][eE][bB][mM]"))
505-
518+
506519
# Sort recordings by creation time (oldest first)
507520
recordings.sort(key=os.path.getctime)
508-
521+
509522
# Add numbering to the recordings
510523
numbered_recordings = []
511524
for idx, recording in enumerate(recordings, start=1):
512525
filename = os.path.basename(recording)
513526
numbered_recordings.append((recording, f"{idx}. {filename}"))
514-
527+
515528
return numbered_recordings
516529

517530
recordings_gallery = gr.Gallery(
@@ -534,21 +547,21 @@ def list_recordings(save_recording_path):
534547
lambda provider, api_key, base_url: update_model_dropdown(provider, api_key, base_url),
535548
inputs=[llm_provider, llm_api_key, llm_base_url],
536549
outputs=llm_model_name
537-
)
550+
)
538551

539552
# Add this after defining the components
540553
enable_recording.change(
541554
lambda enabled: gr.update(interactive=enabled),
542555
inputs=enable_recording,
543556
outputs=save_recording_path
544557
)
545-
558+
546559
# Run button click handler
547560
run_button.click(
548561
fn=run_browser_agent,
549562
inputs=[
550563
agent_type, llm_provider, llm_model_name, llm_temperature, llm_base_url, llm_api_key,
551-
use_own_browser, headless, disable_security, window_w, window_h, save_recording_path,
564+
use_own_browser, headless, disable_security, window_w, window_h, save_recording_path, save_trace_path,
552565
enable_recording, task, add_infos, max_steps, use_vision, max_actions_per_step, tool_call_in_content
553566
],
554567
outputs=[final_result_output, errors_output, model_actions_output, model_thoughts_output, recording_display],

0 commit comments

Comments
 (0)