Skip to content

Commit 36f92f0

Browse files
committed
Terminate after maxsteps
1 parent 83d88bd commit 36f92f0

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

llmstack/play/actors/agent.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,32 @@ def run(self) -> None:
6161
def on_receive(self, message: Message) -> Any:
6262
import openai
6363
importlib.reload(openai)
64+
max_steps = self._config.get('max_steps', 10) + 2
65+
66+
if len(self._agent_messages) > max_steps:
67+
output_response = OutputResponse(
68+
response_content_type='text/markdown',
69+
response_status=200,
70+
response_body='Exceeded max steps. Terminating.',
71+
response_headers={},
72+
)
73+
bookkeeping_data = BookKeepingData(
74+
run_data={**output_response._asdict()}, input=self._input, config={}, output={'agent_messages': self._agent_messages}, timestamp=time.time(),
75+
)
76+
self._output_stream.bookkeep(bookkeeping_data)
77+
78+
async_to_sync(self._output_stream.write_raw)(
79+
Message(
80+
message_type=MessageType.AGENT_DONE,
81+
message_from='agent',
82+
)
83+
)
84+
return
85+
6486
if message.message_type == MessageType.BEGIN and message.message_to == self._id:
6587
logger.info(f'Agent actor {self.actor_urn} started')
6688

6789
model = self._config.get('model', 'gpt-3.5-turbo')
68-
max_steps = self._config.get('max_steps', 10)
6990

7091
openai.api_key = self._env['openai_api_key']
7192

0 commit comments

Comments
 (0)