Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Receptionist routes to the best agent for initial user input #94

Closed

Conversation

nalbion
Copy link
Contributor

@nalbion nalbion commented Sep 13, 2023

Implementation for #91

Write the word 'Washington' to a .txt file

Can go straight to CodeMonkey so that we can be benchmarked against ChatGPT agents.

A simple chat app with real time communication

Needs to go to the ProductOwner.

Introducing the Receptionist into the conversation

NOTE - This isn't wired up yet. To pass the benchmarks, The Receptionist needs to take the first user input prompt.

The problem is that the call flow, by default goes:

  • PO: What is the project name?
  • User: My App
  • PO: Describe your app in as many details as possible.
  • User: A simple chat app with real time communication

It would need to be changed to:

  • PO: Describe your app in as many details as possible.
  • User: A simple chat app with real time communication
    ( PO asks Receptionist "do you think they want to speak to me or the Code Monkey?" )
  • PO: What is the project name?
  • User: My App

Or:

  • Reception: Hi, how can I help you?
  • User: I want to build a web app
  • PO: What is the project name?
  • User: My App
  • PO: Describe your app in as many details as possible.
  • User: A simple chat app with real time communication

Or:

  • Reception: Would you like to build a new project or
  • User: I want to build a web app
  • PO: What is the project name?
  • User: My App
  • PO: Describe your app in as many details as possible.
  • User: A simple chat app with real time communication

Agent Protocol

I'm also thinking how the Agent Protocol (#89) would work. My original thinking was:

An IDE "New Project" wizard could have a UI which asked for the the following and sent them as sequential inputs and possibly additional_input fields, but I'm not a big fan of using the additional_input as it's something that the client (IDE) needs to know about, but it could be a good mechanism to getting past the Receptionist.

  • workspace path: /src/chat-app`
  • project name: chat app
  • description: A simple chat app with real time communication
POST /agent/tasks
{
   "input": "chat app"                      // args.name
   "additional_input": {
     "workspace": "/src/chat-app"   // args.workspace
     "task_type": "Web App"
   }
}

Creates an App and responds with app_id as task_id
> { "task_id": "chat_app" }

Is it reasonable that the client would know (how) to send the Description from the New Project wizard UI?

It's possible that the client just starts off with an empty text box like ChatGPT, but at this stage I'm not sure what the client would be sending in the initial Task post.

We still need to cater for the standard use which seems to be:

  • user begins a new conversation without any guidance or prompting from our app or LLM, by POST /agent/tasks
  • user sends further inputs to POST /agent/tasks/{task_id}/steps

The catch is that we're not able to present them with a prompt from our app/LLM until they've POSTed the first steps input.

POST /agent/tasks/chat_app/steps
{
   "input": "A simple chat app with real time communication"
}

@nalbion nalbion mentioned this pull request Sep 13, 2023
1 task
@nalbion
Copy link
Contributor Author

nalbion commented Sep 15, 2023

I noticed that llm_connection.get_prompt adds no_micro_services and single_question to the prompt, but it's not needed.

[edit] ..oh, I see it's just loaded into prompt_data in case it's needed by the prompt, but still - different agents may want to add different prompts by name or value.

@nalbion
Copy link
Contributor Author

nalbion commented Sep 18, 2023

Actually, I like the idea of opening with the project description and allow the ProductOwner to suggest a name, this could even become a longer conversation ("I'm not sure" -> "how about these suggestions: ..." -> "No, it should..."):

User: A simple chat app with real time communication
PO: What is the project name? (press Enter for "Chat app")

@LeonOstrez LeonOstrez closed this Dec 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants