Open nalbion opened 11 months ago
After studying the documentation and source for LangChain Agents and Microsoft's AutoGen I've come up with an idea for how we could make some architectural changes to allow a lot more flexibility in the future.
The objective being that we end up with an extensible framework which integrates with existing tools and agents: (See also Support for Auto-GPT Plugins, which is not represented in this diagram, but could be employed by any of the worker Agents in red or green)
It would be interesting to consider how such an architecture could support the existing use-case (gpt pilot with its current agents) without really changing anything, so that the "open" case (where you can add any agents to the system) is a generalization of the "closed" case (gpt pilot with a fixed set of agents).
For example, TechLead could describe the other agents that it depends upon. It can declare that it needs to work together with a Developer agent, and offer a description of what a Developer agent should be capable of. In that case, TechLead can still send messages to Developer (*), but the router will intercept those messages and find out if there is any available agent that can take the Developer role (using the "Developer" role description and the self-description of every agent).
(*) in this case, TechLead only has an abstract notion of "Developer". It doesn't know which concrete Developer agent it is communicating with.
PS In that case, the use of the RouterAgent can also be toggled on and off. If it's off, then the "Developer" role is only matched if there is an agent with that exact name. I'm just brainstorming here (I'm sure there are all kinds of details to be sorted out), but I like both the "closed" model (because it's simple and predictable) and the "open" model (because it's more general) so it would be nice to support both.
GitHub CoPilot now lets you address agents directly using @workspace
or @vscode
in addition to /slash
commands which the agents support
@nalbion Love your work!
@mnieber Interesting idea (where they declare what agents they want to work with). Could tie in well with my comments at https://github.com/Pythagora-io/gpt-pilot/issues/182#issuecomment-1836435382 .
As a user I want to start GPT Pilot with various types of initial prompts So that I can build a new app, modify an existing app or debug an issue.
See also #73
Start a non-trivial project
Compatibility with Auto-GPT benchmarks - #73
Interact with issue management - #83