Skip to content

Commit

Permalink
fix: fix core memory heartbeat issue (#1929)
Browse files Browse the repository at this point in the history
  • Loading branch information
sarahwooders authored Oct 23, 2024
1 parent 5253b04 commit 3b1210f
Show file tree
Hide file tree
Showing 6 changed files with 384 additions and 461 deletions.
1 change: 0 additions & 1 deletion development.compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ services:
env_file:
- .env
environment:
- MEMGPT_SERVER_PASS=test_server_token
- WATCHFILES_FORCE_POLLING=true

volumes:
Expand Down
2 changes: 2 additions & 0 deletions examples/personal_assistant_demo/twilio_flask_listener.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
app = Flask(__name__)
CORS(app)

# NOTE: this is out of date for >=0.5.0

MEMGPT_SERVER_URL = "http://127.0.0.1:8283"
MEMGPT_TOKEN = os.getenv("MEMGPT_SERVER_PASS")
assert MEMGPT_TOKEN, f"Missing env variable MEMGPT_SERVER_PASS"
Expand Down
10 changes: 7 additions & 3 deletions letta/server/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ def run_command(self, user_id: str, agent_id: str, command: str) -> Union[str, N
from letta.config import LettaConfig

# NOTE: hack to see if single session management works
from letta.settings import model_settings, settings
from letta.settings import model_settings, settings, tool_settings

config = LettaConfig.load()

Expand Down Expand Up @@ -828,7 +828,8 @@ def create_agent(
# tool already added
continue
source_code = parse_source_code(func)
json_schema = generate_schema(func, func_name)
# memory functions are not terminal
json_schema = generate_schema(func, terminal=False, name=func_name)
source_type = "python"
tags = ["memory", "memgpt-base"]
tool = self.create_tool(
Expand Down Expand Up @@ -2009,7 +2010,10 @@ def add_default_tools(self, module_name="base", user_id: Optional[str] = None):
def add_default_external_tools(self, user_id: Optional[str] = None) -> bool:
"""Add default langchain tools. Return true if successful, false otherwise."""
success = True
tools = Tool.load_default_langchain_tools() + Tool.load_default_crewai_tools() + Tool.load_default_composio_tools()
if tool_settings.composio_api_key:
tools = Tool.load_default_langchain_tools() + Tool.load_default_crewai_tools() + Tool.load_default_composio_tools()
else:
tools = Tool.load_default_langchain_tools() + Tool.load_default_crewai_tools()
for tool in tools:
try:
self.ms.create_tool(tool)
Expand Down
5 changes: 5 additions & 0 deletions letta/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
from letta.local_llm.constants import DEFAULT_WRAPPER_NAME


class ToolSettings(BaseSettings):
composio_api_key: Optional[str] = None


class ModelSettings(BaseSettings):

# env_prefix='my_prefix_'
Expand Down Expand Up @@ -99,3 +103,4 @@ class TestSettings(Settings):
settings = Settings(_env_parse_none_str="None")
test_settings = TestSettings()
model_settings = ModelSettings()
tool_settings = ToolSettings()
25 changes: 0 additions & 25 deletions locust_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,28 +103,3 @@ def send_message(self):
# except Exception as e:
# with self.client.get("/", catch_response=True) as response:
# response.failure(str(e))


# class AdminUser(HttpUser):
# wait_time = between(5, 10)
# token = None
#
# def on_start(self):
# # Authenticate as admin
# self.client.headers = {"Authorization": "pasword"}
#
# @task
# def create_user(self):
# user_data = {
# "name": f"User-{''.join(random.choices(string.ascii_lowercase + string.digits, k=8))}"
# }
# self.client.post("/admin/users", json=user_data)
#
# @task
# def get_all_users(self):
# self.client.get("/admin/users")
#
# @task
# def get_all_agents(self):
# self.client.get("/api/admin/agents")
#
Loading

0 comments on commit 3b1210f

Please sign in to comment.