fix: allow empty initial message sequence (#2214)
This commit is contained in:
@@ -130,8 +130,9 @@ class OfflineMemoryAgent(Agent):
|
||||
# extras
|
||||
first_message_verify_mono: bool = False,
|
||||
max_memory_rethinks: int = 10,
|
||||
initial_message_sequence: Optional[List[Message]] = None,
|
||||
):
|
||||
super().__init__(interface, agent_state, user)
|
||||
super().__init__(interface, agent_state, user, initial_message_sequence=initial_message_sequence)
|
||||
self.first_message_verify_mono = first_message_verify_mono
|
||||
self.max_memory_rethinks = max_memory_rethinks
|
||||
|
||||
|
||||
@@ -379,6 +379,8 @@ class SyncServer(Server):
|
||||
interface = interface or self.default_interface_factory()
|
||||
if agent_state.agent_type == AgentType.memgpt_agent:
|
||||
agent = Agent(agent_state=agent_state, interface=interface, user=actor, initial_message_sequence=initial_message_sequence)
|
||||
elif agent_state.agent_type == AgentType.offline_memory_agent:
|
||||
agent = OfflineMemoryAgent(agent_state=agent_state, interface=interface, user=actor, initial_message_sequence=initial_message_sequence)
|
||||
else:
|
||||
assert initial_message_sequence is None, f"Initial message sequence is not supported for O1Agents"
|
||||
agent = O1Agent(agent_state=agent_state, interface=interface, user=actor)
|
||||
@@ -843,7 +845,7 @@ class SyncServer(Server):
|
||||
self.ms.create_agent(agent_state)
|
||||
|
||||
# create the agent object
|
||||
if request.initial_message_sequence:
|
||||
if request.initial_message_sequence is not None:
|
||||
# init_messages = [Message(user_id=user_id, agent_id=agent_state.id, role=message.role, text=message.text) for message in request.initial_message_sequence]
|
||||
init_messages = []
|
||||
for message in request.initial_message_sequence:
|
||||
|
||||
@@ -32,7 +32,6 @@ def clear_agents(client):
|
||||
for agent in client.list_agents():
|
||||
client.delete_agent(agent.id)
|
||||
|
||||
|
||||
def test_ripple_edit(client, mock_e2b_api_key_none):
|
||||
trigger_rethink_memory_tool = client.create_or_update_tool(trigger_rethink_memory)
|
||||
|
||||
@@ -135,3 +134,24 @@ def test_chat_only_agent(client, mock_e2b_api_key_none):
|
||||
|
||||
# Clean up agent
|
||||
client.delete_agent(chat_only_agent.id)
|
||||
|
||||
def test_initial_message_sequence(client, mock_e2b_api_key_none):
|
||||
"""
|
||||
Test that when we set the initial sequence to an empty list,
|
||||
we do not get the default initial message sequence.
|
||||
"""
|
||||
offline_memory_agent = client.create_agent(
|
||||
name="offline_memory_agent",
|
||||
agent_type=AgentType.offline_memory_agent,
|
||||
system=gpt_system.get_system_text("memgpt_offline_memory"),
|
||||
llm_config=LLMConfig.default_config("gpt-4"),
|
||||
embedding_config=EmbeddingConfig.default_config("text-embedding-ada-002"),
|
||||
include_base_tools=False,
|
||||
initial_message_sequence=[],
|
||||
)
|
||||
assert offline_memory_agent is not None
|
||||
assert len(offline_memory_agent.message_ids) == 1 # There should just the system message
|
||||
|
||||
client.delete_agent(offline_memory_agent.id)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user