Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
After a conversation with @merwanehamadi we came up with a minimal agent communication protocol that we think could be useful for the community — if more agents use a universal protocol people can way more easily benchmark, develop, deploy and use agents.
We formalized the spec in a repository and also added SDK wrappers to get rid of the boilerplate when implementing the spec. We also started adding the protocol support to agents like smol developer, beebot and babyagi.
As I mentioned, the spec is minimal — we plan to support workspaces/artifacts and other functionality, but the core has to be usable and make sense, that's why we are starting with a minimal spec and plan to iteratively add more.
Changes
I made changes to the
cli_web_app
runner that was not actively developed — I reused the original CLI methods and let the user start a server via theagent-protocol
package.The user can then interact (this is the minimal interaction) with the API via
POST /tasks
for creating a task that AutoGPT should run andPOST /agent/tasks/{task_id}/steps
for a repeated execution of steps from the AutoGPT loop while optionally addinguser_input
that the execution can process.For this, I used a modified
run_interaction_loop
function that only executes one step of the loop and waits for another APIPOST /agent/tasks/{task_id}/steps
request to continue.Now the next step is to implement calling this API via a CLI as was the original plan of the CLI web app runner.
Documentation
I need to document the changes and the new functionality.
Test Plan
I still need to thoroughly test these changes.
PR Quality Checklist