Skip to content

Commit 086a218

Browse files
committed
new memory context fetched from db
1 parent 84f8071 commit 086a218

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

ai_ta_backend/agents/ml4bio_agent.py

+33-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import getpass
2+
import json
23
import os
34
import platform
45
from typing import List
@@ -18,6 +19,7 @@
1819
from langchain_experimental.plan_and_execute.executors.base import ChainExecutor
1920
from .tools import get_tools
2021
from .utils import fancier_trim_intermediate_steps
22+
from .utils import SupabaseDB
2123
import ai_ta_backend.agents.customcallbacks as customcallbacks
2224

2325
HUMAN_MESSAGE_TEMPLATE = """Previous steps: {previous_steps}
@@ -30,6 +32,12 @@
3032
3133
"""
3234

35+
MEMORY_CONTEXT = """
36+
Memory:
37+
Tools used in chronological order(1 is oldest) : {tools_used}
38+
Actions taken in chronological order(1 is oldest) : {agent_action_steps}
39+
"""
40+
3341

3442

3543
def get_user_info_string():
@@ -41,6 +49,27 @@ def get_user_info_string():
4149
return f"[User Info]\nName: {username}\nCWD: {current_working_directory}\nSHELL: {default_shell}\nOS: {operating_system}"
4250

4351

52+
def get_memory_context(table_name: str, image_name: str):
53+
db = SupabaseDB(table_name=table_name, image_name=image_name)
54+
tools_used, action_data_string = "", ""
55+
56+
if db.is_exists_image():
57+
tool_data = db.fetch_field_from_db("on_tool_start")
58+
if tool_data:
59+
tools_used = [item['name'] for item in tool_data]
60+
tools_used = ", ".join(tools_used)
61+
62+
action_data = db.fetch_field_from_db("on_agent_action")
63+
if action_data:
64+
action_data_string = [item['log'] for item in action_data]
65+
action_data_string = ", ".join(action_data_string)
66+
67+
return MEMORY_CONTEXT.format(
68+
tools_used=tools_used,
69+
agent_action_steps=action_data_string,
70+
)
71+
72+
4473
class WorkflowAgent:
4574
def __init__(self, run_id_in_metadata, image_name):
4675
self.run_id_in_metadata = run_id_in_metadata
@@ -85,8 +114,11 @@ def custom_load_agent_executor(self,
85114
Returns:
86115
ChainExecutor
87116
"""
117+
memory_context = get_memory_context(table_name="docker_images", image_name=self.image_name)
118+
print("Memory Context: ", memory_context)
119+
88120
input_variables = ["previous_steps", "current_step", "agent_scratchpad"]
89-
template = HUMAN_MESSAGE_TEMPLATE
121+
template = HUMAN_MESSAGE_TEMPLATE + memory_context
90122

91123
if include_task_in_prompt:
92124
input_variables.append("objective")

0 commit comments

Comments
 (0)