-
Notifications
You must be signed in to change notification settings - Fork 43.9k
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
feat(rnd): Implement agent block execution logic for AutoGPT Server #7194
feat(rnd): Implement agent block execution logic for AutoGPT Server #7194
Conversation
β Deploy Preview for auto-gpt-docs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Structure looks good! My main concern is typing; we could use schema or at least use something better than dict[str, str]
for Block
inputs/outputs. I understand that we need to store all that inside the database, but I don't think we should ignore type safety.
Change requests have been addressed. Feel-free to add more comment in the PR though if there are more comments, I'll address it in the following PR.
Background
This PR implements the main logic of the block execution engine for AutoGPT-Server.
An integration test is added to test the behavior.
What you can do now with this PR:
You can manually create a graph, by using the existing blocks as nodes (or write your own). Then execute the graph with an input.
What you can't do yet:
Listen to the graph execution result/update (you can follow the
AgentNodeExecution
table result, though).Changes ποΈ
data.py
(model file) into three modules:execution
: a model for node execution.graph
: a model for graph structure.block
: a model for agent block/component.AgentBlockInputOutput
in favor ofinputSchema
&outputSchema
using serialized json/dict structure.id
onAgentBlock
in favor of using name (class name of the block) as its identifier.constantInput
column forAgentNode
for hard-coded input/block configuration. Hence, removingexecutionStateData
onAgentNodeExecution
.prisma
asynchronous client.PR Quality Scorecard β¨
+2 pts
+5 pts
+5 pts
+5 pts
-4 pts
+4 pts
+5 pts
-5 pts
agbenchmark
to verify that these changes do not regress performance? β+10 pts