diff --git a/ra_aid/agent_utils.py b/ra_aid/agent_utils.py
index f402f3e..6e5c729 100644
--- a/ra_aid/agent_utils.py
+++ b/ra_aid/agent_utils.py
@@ -189,6 +189,7 @@ def run_research_agent(
human_section=human_section,
web_research_section=web_research_section,
key_facts=key_facts,
+ work_log=get_memory_value('work_log'),
code_snippets=code_snippets,
related_files=related_files
)
@@ -382,6 +383,7 @@ def run_planning_agent(
related_files="\n".join(get_related_files()),
key_facts=get_memory_value('key_facts'),
key_snippets=get_memory_value('key_snippets'),
+ work_log=get_memory_value('work_log'),
research_only_note='' if config.get('research_only') else ' Only request implementation if the user explicitly asked for changes to be made.'
)
diff --git a/ra_aid/prompts.py b/ra_aid/prompts.py
index ad9d922..e0cbb2b 100644
--- a/ra_aid/prompts.py
+++ b/ra_aid/prompts.py
@@ -118,6 +118,11 @@ Relevant Code Snippets:
Related Files:
{related_files}
+Work done so far:
+
+{work_log}
+
+
Be very thorough in your research and emit lots of snippets, key facts. If you take more than a few steps, be eager to emit research subtasks.{research_only_note}
Objective
@@ -326,6 +331,11 @@ Relevant Code Snippets:
Related Files:
{related_files}
+Work done so far:
+
+{work_log}
+
+
Be very thorough in your research and emit lots of snippets, key facts. If you take more than a few steps, be eager to emit research subtasks.
Objective
@@ -439,6 +449,11 @@ Key Facts:
Key Snippets:
{key_snippets}
+Work done so far:
+
+{work_log}
+
+
Fact Management:
Each fact is identified with [Fact ID: X].
Facts may be deleted if they become outdated, irrelevant, or duplicates.
diff --git a/ra_aid/tools/agent.py b/ra_aid/tools/agent.py
index 91d0462..4b918d6 100644
--- a/ra_aid/tools/agent.py
+++ b/ra_aid/tools/agent.py
@@ -9,7 +9,7 @@ ResearchResult = Dict[str, Union[str, bool, Dict[int, Any], List[Any], None]]
from rich.console import Console
from ra_aid.tools.memory import _global_memory
from ra_aid.console.formatting import print_error
-from .memory import get_memory_value, get_related_files, get_work_log, reset_work_log
+from .memory import get_memory_value, get_related_files, get_work_log
from .human import ask_human
from ..llm import initialize_llm
from ..console import print_task_header
@@ -78,10 +78,7 @@ def request_research(query: str) -> ResearchResult:
# Get completion message if available
completion_message = _global_memory.get('completion_message', 'Task was completed successfully.' if success else None)
- # Get and reset work log if at root depth
- work_log = get_work_log() if current_depth == 1 else None
- if current_depth == 1:
- reset_work_log()
+ work_log = get_work_log()
# Clear completion state from global memory
_global_memory['completion_message'] = ''
@@ -140,11 +137,7 @@ def request_web_research(query: str) -> ResearchResult:
# Get completion message if available
completion_message = _global_memory.get('completion_message', 'Task was completed successfully.' if success else None)
- # Get and reset work log if at root depth
- current_depth = _global_memory.get('agent_depth', 0)
- work_log = get_work_log() if current_depth == 1 else None
- if current_depth == 1:
- reset_work_log()
+ work_log = get_work_log()
# Clear completion state from global memory
_global_memory['completion_message'] = ''
@@ -205,11 +198,7 @@ def request_research_and_implementation(query: str) -> Dict[str, Any]:
# Get completion message if available
completion_message = _global_memory.get('completion_message', 'Task was completed successfully.' if success else None)
- # Get and reset work log if at root depth
- current_depth = _global_memory.get('agent_depth', 0)
- work_log = get_work_log() if current_depth == 1 else None
- if current_depth == 1:
- reset_work_log()
+ work_log = get_work_log()
# Clear completion state from global memory
_global_memory['completion_message'] = ''
@@ -278,10 +267,7 @@ def request_task_implementation(task_spec: str) -> Dict[str, Any]:
completion_message = _global_memory.get('completion_message', 'Task was completed successfully.' if success else None)
# Get and reset work log if at root depth
- current_depth = _global_memory.get('agent_depth', 0)
- work_log = get_work_log() if current_depth == 1 else None
- if current_depth == 1:
- reset_work_log()
+ work_log = get_work_log()
# Clear completion state from global memory
_global_memory['completion_message'] = ''
@@ -339,10 +325,7 @@ def request_implementation(task_spec: str) -> Dict[str, Any]:
completion_message = _global_memory.get('completion_message', 'Task was completed successfully.' if success else None)
# Get and reset work log if at root depth
- current_depth = _global_memory.get('agent_depth', 0)
- work_log = get_work_log() if current_depth == 1 else None
- if current_depth == 1:
- reset_work_log()
+ work_log = get_work_log()
# Clear completion state from global memory
_global_memory['completion_message'] = ''
diff --git a/tests/ra_aid/test_agent_utils.py b/tests/ra_aid/test_agent_utils.py
new file mode 100644
index 0000000..e69de29