OpenAGI aims to make human-like agents accessible to everyone, thereby paving the way towards open agents and, eventually, AGI for everyone. We strongly believe in the transformative power of AI and are confident that this initiative will significantly contribute to solving many real-life problems. Currently, OpenAGI is designed to offer developers a framework for creating autonomous human-like agents.
👉 Join our Discord community!# For Mac and Linux users
python3 -m venv venv
source venv/bin/activate
# For Windows users
python -m venv venv
venv/scripts/activate
pip install openagi
or
git clone https://github.com/aiplanethub/openagi.git
pip install -e .
Workers are used to create a Multi-Agent architecture.
Follow this example to create a Trip Planner Agent that helps you plan the itinerary to SF.
from openagi.agent import Admin
from openagi.planner.task_decomposer import TaskPlanner
from openagi.actions.tools.ddg_search import DuckDuckGoSearch
from openagi.llms.openai import OpenAIModel
from openagi.worker import Worker
plan = TaskPlanner(human_intervene=False)
action = DuckDuckGoSearch
import os
os.environ['OPENAI_API_KEY'] = "sk-xxxx"
config = OpenAIModel.load_from_env_config()
llm = OpenAIModel(config=config)
trip_plan = Worker(
role="Trip Planner",
instructions="""
User loves calm places, suggest the best itinerary accordingly.
""",
actions=[action],
max_iterations=10)
admin = Admin(
llm=llm,
actions=[action],
planner=plan,
)
admin.assign_workers([trip_plan])
res = admin.run(
query="Give me total 3 Days Trip to San francisco Bay area",
description="You are a knowledgeable local guide with extensive information about the city, it's attractions and customs",
)
print(res)
Lets build a Sports Agent now that can run autonomously without any Workers.
from openagi.planner.task_decomposer import TaskPlanner
from openagi.actions.tools.tavilyqasearch import TavilyWebSearchQA
from openagi.agent import Admin
from openagi.llms.gemini import GeminiModel
import os
os.environ['TAVILY_API_KEY'] = "<replace with Tavily key>"
os.environ['GOOGLE_API_KEY'] = "<replace with Gemini key>"
os.environ['Gemini_MODEL'] = "gemini-1.5-flash"
os.environ['Gemini_TEMP'] = "0.1"
gemini_config = GeminiModel.load_from_env_config()
llm = GeminiModel(config=gemini_config)
# define the planner
plan = TaskPlanner(autonomous=True,human_intervene=True)
admin = Admin(
actions = [TavilyWebSearchQA],
planner = plan,
llm = llm,
)
res = admin.run(
query="I need cricket updates from India vs Sri lanka 2024 ODI match in Sri Lanka",
description=f"give me the results of India vs Sri Lanka ODI and respective Man of the Match",
)
print(res)
With LTM, OpenAGI agents can now:
import os
from openagi.agent import Admin
from openagi.llms.openai import OpenAIModel
from openagi.memory import Memory
from openagi.planner.task_decomposer import TaskPlanner
from openagi.worker import Worker
from openagi.actions.tools.ddg_search import DuckDuckGoSearch
memory = Memory(long_term=True)
os.environ['OPENAI_API_KEY'] = "-"
config = OpenAIModel.load_from_env_config()
llm = OpenAIModel(config=config)
web_searcher = Worker(
role="Web Researcher",
instructions="""
You are tasked with conducting web searches using DuckDuckGo.
Find the most relevant and accurate information based on the user's query.
""",
actions=[DuckDuckGoSearch],
)
admin = Admin(
actions=[DuckDuckGoSearch],
planner=TaskPlanner(human_intervene=False),
memory=memory,
llm=llm,
)
admin.assign_workers([web_searcher])
query = input("Enter your search query: ")
description = f"Find accurate and relevant information for the query: {query}"
res = admin.run(query=query,description=description)
print(res)
For more queries find documentation for OpenAGI at openagi.aiplanet.com
For any queries/suggestions/support connect us at openagi@aiplanet.com
OpenAGI thrives in the rapidly evolving landscape of open-source projects. We wholeheartedly welcome contributions in various capacities, be it through innovative features, enhanced infrastructure, or refined documentation.
For a comprehensive guide on the contribution process, please click here.