Skip to content

⚡ Design, implement, and test new plug-and-play AGI Architectures. ⚡

Notifications You must be signed in to change notification settings

cybertheory/skillweaver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠🕸️ SkillWeaver

⚡ A plug-and-play package to design, implement, and test your own AGI Architectures. ⚡

High Level Design Document

Quick Install

pip install SkillWeaver or conda install SkillWeaver -c conda-forge

🤔 What is this?

SkillWeaver treats LLM Chains as singular, out-of-the-box components called 'skills' and makes it simple to implement nuanced, high-level AGI flows. The package simply allows developers to "weave" together skills, which are great at helping AGI solve highly specific, complex tasks.

It is obvious that the future of AI lies in the creation of artificial generalized intelligence (AGI). Presently, LLM models have pushed the boundaries of this by showcasing the power to solve a variety of tasks. However, current LLM flows and pipelines are limited due to context and clarity, making it essential to break down tasks into smaller problems for AGI to solve.

E.g. BabyAGI Schema

image

The project aims to provide an ecosystem of skills out of the box and provide simple tooling to modify existing skills or create brand-new ones with plug-and-play patterns.

Skillweaver provides all the tooling necessary to plan, implement, and fine-tune AGI flows to solve a higher variety of tasks. And even aims to host an ecosystem of Skill Webs for more ambitious developers to weave together to create even more nuanced intelligence.

🔥 Oh so simple!

# Simple demonstration of using SkillWeaver to create a human input agent that conducts search tasks

from skillweaver import Schema
from skillweaver.llms import OpenAI

# A schema is essentially your AGI canvas

skillweb = Schema(llm = OpenAI(openai_api_key = *****)) # set global variables

#adds and exposes skills used in the schema
search, human = skillweb.load_skills(['SearchRetreival','HumanInputObserver']) 

#connect the two agents with a spindle, you can specify custom processing logic here
skillweb.schedule([human, search])

skillweb.run()

# Much quicker, simpler to understand, and easier to read than langchain and can be easily expanded upon

🔥 Super Simple BabyAGI Implementation!

from skillweaver import Schema
from skillweaver.llms import OpenAI

sw = Schema(llm = OpenAI(openai_api_key = *****))

retrieval, uploader = sw.load_spindles(["TextRetrieval", "TextSaver", "VectorUploader"])

search, text, context, taskgen, taskprio, = sw.load_skills(["SearchRetrieval", "TextTransformer",
                                            "ContextEnricher", "TaskThinker", "PriorityThinker"])

sw.schedule([retrieval, SkillPicker([search, text]), context, uploader, taskgen, taskprio, textsaver])

skillweb.run("Find, categorize, and generate a table of all the candidates running in the 2023 election")

🚀 What can this help with?

🧠 Schemas

Borrowed from Cognitive Psychology and other aspects of Computer Science, A schema defines categories of information and relationships among them. SkillWeaver allows developers to design and implement schemas that define the operations of their AGI.

🕸️ Skill Webs

Just as LangChain allows developers to chain together different ready-to-go tools to create LLM Chains and Agents, SkillWeaver allows developers to chain together out-of-the-box Agents (which we call Skills). Agents are really good at doing complex tasks with a smaller number of tools, by allowing developers to chain together simpler agents we can quicken development times and decrease problem complexity which increases reliability.

🛠️ Skills

SkillWeaver's fundamental building blocks are skills. A skill is essentially an LLM Chain or Agent that is really good at performing a certain task. Skills abstract away all of LangChain's data loaders, transformers, vector stores, prompt templates, and tools so that developers can focus on solving real-world tasks. SkillWeaver provides an ecosystem of skills out of the box.

🧬 Skill Blends

It is useful to have an agent deal with multiple skills at once, this can increase interoperability and understanding to execute tasks. Skill Blends provide different ways to blend skills together to achieve desired results.

🧩 Skill Patterns

These are templates that developers can use to create custom skills easily. Patterns abstract away common boilerplate when making chains.

📊 Skill Charts

In creating AGI using LLM models, it is very important to understand what a model is good at doing so we can provide appropriate abstractions for the model to execute. Skill Charts keep a running record of which skills a model may be excellent at.

💁 Contributing

As an open-source project in a rapidly developing field, we are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.

For detailed information on how to contribute, see here.

Attribution

Much of this project is based on LangChain.

About

⚡ Design, implement, and test new plug-and-play AGI Architectures. ⚡

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages