friendly reminder: babyagi is a personal side project being shared publicly. i am not a dev, never studied cs, this is not secure, not meant for production, and meant for playing/as inspiration for developers. x.com
it is available on the babyagi repo at: github.com
find the old version archived at babyagi_archive: github.com
but more importantly, you can do this now!
pip install babyagi
find the old version archived at babyagi_archive: github.com
but more importantly, you can do this now!
pip install babyagi
a few core philosophies/opinions behind the design:
- agents should build itself
- functions should be small and use each other (more reliable to reuse stuff)
- store code as graph structure in DB
- build the simplest thing that can build itself
- agents should build itself
- functions should be small and use each other (more reliable to reuse stuff)
- store code as graph structure in DB
- build the simplest thing that can build itself
the babyagi framework has three main parts:
- functionz is the core function framework for registering and executing functions out of the database
- the dashboard is a no code UI for managing functions and logs (plus chat playground)
- a handful of default and optional functions “packs” to load into your DB
- functionz is the core function framework for registering and executing functions out of the database
- the dashboard is a no code UI for managing functions and logs (plus chat playground)
- a handful of default and optional functions “packs” to load into your DB
what’s unique about the framework is storing function dependencies (other functions in the DB it uses), imports, and keys in a DB which gets dynamically loaded into the execution environment.
i also threw in two default ai features: auto write description (if none), and auto-embed description (used in find_similar_function)
i also threw in two default ai features: auto write description (if none), and auto-embed description (used in find_similar_function)
you can see all the functions in the function dashboard like this. notice we track input/output params, versions, and more
version control is automatic whenever you change the code of a function, with easy rollback x.com
version control is automatic whenever you change the code of a function, with easy rollback x.com
function pages come with this:
- auto generated execution form based on input parameters
- details (imports, keys, etc)
- code (can read , edit, update)
- logs
- versions (with roll back button) x.com
- auto generated execution form based on input parameters
- details (imports, keys, etc)
- code (can read , edit, update)
- logs
- versions (with roll back button) x.com
there are also three graph views of the functions:
- cytoscape: interactive graph of functions and nodes. click on a node to open all functionality available on the function page
- mermaid: easier to read, not interactive
- 3D: just for kicks
x.com
- cytoscape: interactive graph of functions and nodes. click on a node to open all functionality available on the function page
- mermaid: easier to read, not interactive
- 3D: just for kicks
x.com
the logs page shows you all logs, with filters/search, and bundled*.
when a function calls or triggers another function, we track “parent log ID” which we use to automatically bundle functions that utilize other functions (can be nested) x.com
when a function calls or triggers another function, we track “parent log ID” which we use to automatically bundle functions that utilize other functions (can be nested) x.com
click on a log ID to see the full bundle with ability to see full details.
a little green or red dot makes it easy to debug complex functions. x.com
a little green or red dot makes it easy to debug complex functions. x.com
finally a quick chat playground where you can dynamically load functions from your DB as tools for function calling using litellm.
x.com
x.com
some “packs” are auto-loaded as default functions
- default functions for managing and functions and logs in DB
- ai functions for auto generating and embedding descriptions, as well as power the chat
here's how these functions are connected... x.com
- default functions for managing and functions and logs in DB
- ai functions for auto generating and embedding descriptions, as well as power the chat
here's how these functions are connected... x.com
there are a couple optional plugins from services like @firecrawl_dev, @serp_api , @e2b_dev, but those are mostly for myself. you can build and load your own packs with the same load_functions() method and eventually i think it makes sense for us to share. x.com
finally before you test out the experimental self_build features, check out this thread on self building autonomous agents for context
x.com
x.com
the code_writing_functions pack has a process_user_input function that will first determine if an existing function works, and if not generate new ones.
it first breaks it down into multiple reusable tasks, and then adds those to your DB.*
*the functionality works, but code gen prompt needs to be improved
it first breaks it down into multiple reusable tasks, and then adds those to your DB.*
*the functionality works, but code gen prompt needs to be improved
the self_build function takes a user description, generates synthetic queries based on user description, and then feeds it into process_user_input from above.
the result is auto generating functions that the user may need x.com
the result is auto generating functions that the user may need x.com
hope you find some fun stuff in here! there is so much more i want to add.
contributions are welcome, but likely slow to merge while it's just me*. might start with building a small core crew first (if there is interest).
* i only code on nights and weekends
contributions are welcome, but likely slow to merge while it's just me*. might start with building a small core crew first (if there is interest).
* i only code on nights and weekends
btw, i have a few fun initiatives coming up! (agent specific fund, open source non-profit research lab...)
if you are a dev, investor, supporter of open-source, etc. - here’s a quick form you can fill so I can reach you: forms.gle
questions? comments? ✍️👇
if you are a dev, investor, supporter of open-source, etc. - here’s a quick form you can fill so I can reach you: forms.gle
questions? comments? ✍️👇
Loading suggestions...