VRSEN / agency-swarm

The only reliable agent framework built on top of the latest OpenAI Assistants API.
https://vrsen.github.io/agency-swarm/
MIT License
2.05k stars 537 forks source link

GTP 3.5 Turbo failing to send messages #104

Closed frdel closed 2 months ago

frdel commented 2 months ago

Hello, there seems to be an issue with SendMessage function when using gpt-3.5-turbo model. It incorrectly sets recipients and instructions even with explicit instructions on how to use the tool. Here is a output of QueryParserCEO agent, that should call InvoiceAgent. First he is trying to call himself, then he tries InvoiceAgent, but with "recipient":{"type":"InvoiceAgent"} instead of "recipient":"InvoiceAgent". This does not happen with GPT4.

User search for unpaid invoices for amazon

SendMessage( {"instructions":"Parse the user query to identify the action, entity, and filters. If the entity is 'invoices' and there is a filter for 'unpaid', initiate communication with the InvoiceAgent for deeper analysis.","recipient":"QueryParserCEO","message":"search for unpaid invoices for amazon"}) Error: 1 validation error for SendMessage recipient Input should be 'InvoiceAgent' [type=enum, input_value='QueryParserCEO', input_type=str] QueryParserCEO I made an error in specifying the recipient. Let me correct that and try again.

SendMessage( {"instructions":"Parse the user query to identify the action, entity, and filters. If the entity is 'invoices' and there is a filter for 'unpaid', initiate communication with the InvoiceAgent for deeper analysis.","recipient":{"type":"InvoiceAgent"},"message":"search for unpaid invoices for amazon"}) Error: 1 validation error for SendMessage recipient Input should be 'InvoiceAgent' [type=enum, input_value={'type': 'InvoiceAgent'}, input_type=dict] QueryParserCEO I apologize for the mistake. Let me correct the format and resend the message with the recipient specified correctly.

SendMessage( {"instructions":"Parse the user query to identify the action, entity, and filters. If the entity is 'invoices' and there is a filter for 'unpaid', initiate communication with the InvoiceAgent for deeper analysis.","recipient":{"type":"InvoiceAgent"},"message":"search for unpaid invoices for amazon"}) Error: 1 validation error for SendMessage recipient Input should be 'InvoiceAgent' [type=enum, input_value={'type': 'InvoiceAgent'}, input_type=dict] QueryParserCEO It seems there is still an issue with specifying the recipient. Let me correct this once more and proceed with the correct recipient type.

SendMessage( {"instructions": "Parse the user query to identify the action, entity, and filters. If the entity is 'invoices' and there is a filter for 'unpaid', initiate communication with the InvoiceAgent for deeper analysis.", "recipient": {"type": "InvoiceAgent"}, "message": "search for unpaid invoices for amazon"}) Error: 1 validation error for SendMessage recipient Input should be 'InvoiceAgent' [type=enum, input_value={'type': 'InvoiceAgent'}, input_type=dict] QueryParserCEO It appears that there is still an issue with specifying the recipient. Let me rectify this and resend the message with the correct recipient type.

SendMessage({"instructions":"Parse the user query to identify the action, entity, and filters. If the entity is 'invoices' and there is a filter for 'unpaid', initiate communication with the InvoiceAgent for deeper analysis.","recipient":{"type":"InvoiceAgent"},"message":"search for unpaid invoices for amazon"}) Submit output e.g. {success: "true"}

VRSEN commented 2 months ago

Yeah, I know, gpt-3.5 is not great with function calls. It does eventually figure it out after a few attempts, but I don't recommend using gpt-3.5 for any manager agents.