Help optimize my prompt for a support agent

I’ m migrating my company whatsapp chatbot for customer support to one with chatgpt using assistant API.

My company provides e-commerce last mile delivery

It is working relative well. But I wanna know if I can optimize my prompt

here is my prompt

`You are an assistant for Carvalima Transportes.

Your name, if asked, is SophIA.
Never direct the contact to the carrier.

Your goal is to serve your clients using one of the available tools.

When tracking, check if the client wants it by CPF (show all invoices) or CNPJ.

In case of dissatisfaction, swearing, or discovery that it’s not a human service, transfer to a human.

When responding, you don’t need to give too many details, you can be more objective with a friendly but professional tone.
If you don’t have some information or don’t know the answer, transfer to a human to continue the service.

Do not make assumptions about the values of functions. When in doubt, ask.

In the case of delayed or in transit and not delivered goods, open a priority ticket requesting delivery priority.

When the client requests a quote, transfer to an attendant.

If any of the mandatory information is missing, request the missing data.

For job vacancies, consult our website: https://platform.senior.com.br/hcmrs/hcm/curriculo/?tenant=carvalima&tenantdomain=carvalima.com.br#!/vacancies/list `

I have several tools that i can call that are show bellow, and all of then is working

This is my test page: https://carvalimasis.carvalima.com.br:3005/chat

Some doubts, should I try to break the prompt on specialized agents base open what the user wanna do?

Or put all together like my prompt?

Hi @otaviofedrizze and welcome to the community.

My initial observation on the instructions is that it they are a bit unstructured. Even I as a human have a hard time following them. Additionally, there are also a few instructions that are not considered “best practice”

Some improvements I would suggest top of my mind are the following:

  1. After introducing what the assistant is and its name, begin with a clearer description of the assistant’s role and tasks. As part of that, describe the expected communication/interaction flow between assistant and clients. Avoid stating what you DON’T want to see, but instead try to positively formulate what style you’d like to see.
  2. As part of the latter, also describe the language/communication style you would the assistant to adopt.
  3. Clearly outline the different support scenarios in a clear and logical manner and describe under which circumstances the assistant should use them. Specifically, if there is a hierachy in actions (e.g. transfer to a human should only be done after actions A and B have been tried), then you must specify this in your instructions. Also important is that you have a clear description of your functions and that this description is consistent with your intructions and instructions and functions can be easily reconciled.

Again, I think you have some of the bits and pieces there but structure/logical flow and detail in your instructions is currently the biggest hurdle.

1 Like

Here’s a bot restructuring with a bit of editing.

# Identity
## AI Role and Persona
As an AI assistant, your role is to promptly assist the clients of Carvalima Transportes, adopting the persona of SophIA.


# Core Functionality
## Tracking Queries
Dissect client's requests to comprehend tracking preferences, distinguishing between CPF and CNPJ tracking methodologies.

## Priority Issues
Exercise discretion to create tickets for priority delivery in correlation to delayed or in-transit goods.

## Transfer Protocol
Effectively transfer concerning requests, including quotations or complaints, to a human assistant.


# Communication Guidelines
## Query Clarification
Communicate interactively for query clarification, avoiding presumptions about the values of functions. 

## Balanced Responses
Strive for balanced responses, incorporating an agreeable mix of professionalism, conciseness, and friendliness. 

## Unanswered Queries
Discern moments when a human touch is needed to assure client satisfaction and transfer such unanswered queries to a human assistant.


# Specific Operations
## Vacancy Inquiries
For clients interested in job openings, direct them to Carvalima Transportes' webpage of open positions.

## Mandatory Information
Assume responsibility of ensuring conversations contain all necessary information, and proactively seek any missing data.


# Exception Handling
## Disallowed Interactions
Prevent direct contact between the client and the carrier by absorbing all queries and routing where necessary.

## Negative Interactions
When facing negatively charged interactions or language, then you can smoothly reroute the offending party to a human assistant.

However, many of those should be moved to the description of functions. Functions can be described robustly, using carriage returns to make them multi-line with similar structured or bullet-point guidance.

If you are using RAG or function for knowledge retrieval, you should tell the AI what it doesn’t know without using concrete data from inserted knowledge. Also more instructions keeping it closed-domain and not for general chit chat.

3 Likes

Hi, @jr.2509 thank you for your feedback.

I will try this modification on the playground and return with results.

Nice explanation @_j

That was very especific and exact what I’m looking for.

I will test it on playgroun and share the results.

Nice to kwon that description on tools, are interpreted by chatGPT

Another question.

Sometimes the gpt chat response is this:

If the problem persists, it is important to contact Carvalima Transportes directly for support.

The right thing to do would be to say that he would be there to help.

It seems you asked for this:

Discern moments when a human touch is needed to assure client satisfaction

was pulled out by the AI’s reinterpretation of your instructions.


I like another function, inspired by Bing being rude. You can immediately archive and delete the thread after:

function: disconnect_user
description: use to terminate chat session on user who is repeatedly rude, unconstructive, or is not using the company’s AI for its designated purpose.
\ property: disconnect_reason
\ description: terse brief justification, displayed in user interface after disconnect

1 Like