diff --git a/browser_use/agent/message_manager/service.py b/browser_use/agent/message_manager/service.py
index 322630075..f15ee8cb2 100644
--- a/browser_use/agent/message_manager/service.py
+++ b/browser_use/agent/message_manager/service.py
@@ -220,24 +220,24 @@ class MessageManager:
self._add_message_with_tokens(self.system_prompt, message_type='init')
if self.settings.message_context:
- context_message = HumanMessage(content='Context for the task' + self.settings.message_context)
+ context_message = HumanMessage(content='' + self.settings.message_context + '')
self._add_message_with_tokens(context_message, message_type='init')
if self.settings.sensitive_data:
- info = f'Here are placeholders for sensitive data: {list(self.settings.sensitive_data.keys())}'
- info += '\nTo use them, write the placeholder name'
+ info = f'Here are placeholders for sensitive data: {list(self.settings.sensitive_data.keys())}'
+ info += '\nTo use them, write the placeholder name '
info_message = HumanMessage(content=info)
self._add_message_with_tokens(info_message, message_type='init')
- placeholder_message = HumanMessage(
- content='Here is an example thinking and tool call. You can use it as a reference but do not copy it exactly.'
- )
task_message = HumanMessage(
- content=f'Your ultimate task is: """{self.task}""". If you achieved your ultimate task, stop everything and use the done action in the next step to complete the task. If not, continue as usual.'
+ content=f'Your ultimate goal is: """{self.task}""" \nIf you achieved your ultimate task, stop everything and use the done action in the next step to complete the task. If not, continue as usual.'
)
self._add_message_with_tokens(task_message, message_type='init')
- placeholder_message = HumanMessage(content='Example output:')
+ placeholder_message = HumanMessage(
+ content='Here is an example output of thinking and tool call. You can use it as a reference but do not copy it exactly.'
+ )
+ # placeholder_message = HumanMessage(content='Example output:')
self._add_message_with_tokens(placeholder_message, message_type='init')
example_tool_call_1 = AIMessage(
@@ -307,9 +307,9 @@ class MessageManager:
],
)
self._add_message_with_tokens(example_tool_call_1, message_type='init')
- self.add_tool_message(content='Data written to todo.md successfully.', message_type='init')
+ self.add_tool_message(content='Data written to todo.md successfully. ', message_type='init')
- placeholder_message = HumanMessage(content='Example thinking and tool call 2:')
+ placeholder_message = HumanMessage(content='Example thinking and tool call 2:')
# self._add_message_with_tokens(placeholder_message, message_type='init')
example_tool_call_2 = AIMessage(
@@ -350,14 +350,16 @@ My next action is to click on the iPhone link at index [4] to navigate to Apple'
],
)
# self._add_message_with_tokens(example_tool_call_2, message_type='init')
- # self.add_tool_message(content='Clicked on index [4].', message_type='init')
+ # self.add_tool_message(content='Clicked on index [4]. ', message_type='init')
if self.settings.available_file_paths:
- filepaths_msg = HumanMessage(content=f'Here are file paths you can use: {self.settings.available_file_paths}')
+ filepaths_msg = HumanMessage(
+ content=f'Here are file paths you can use: {self.settings.available_file_paths}'
+ )
self._add_message_with_tokens(filepaths_msg, message_type='init')
def add_new_task(self, new_task: str) -> None:
- content = f'Your new ultimate task is: """{new_task}""". Take the previous context into account and finish your new ultimate task. '
+ content = f'Your new ultimate task is: """{new_task}""". Take the previous context into account and finish your new ultimate task. '
msg = HumanMessage(content=content)
self._add_message_with_tokens(msg)
self.task = new_task
diff --git a/browser_use/agent/system_prompt.md b/browser_use/agent/system_prompt.md
index 6a8f06129..10ee33817 100644
--- a/browser_use/agent/system_prompt.md
+++ b/browser_use/agent/system_prompt.md
@@ -36,7 +36,9 @@ Action Results: System generated result of those actions
USER REQUEST: This is your ultimate objective and always remains visible.
-This has the highest priority. Make the user happy.
+- This has the highest priority. Make the user happy.
+- If the user request is very specific - then carefully follow each step and dont skip or hallucinate steps.
+- If the task is open ended you can plan more yourself how to get it done.