THIS REPOSITORY WILL NO LONGER BE MAINTAINED AND HAS BEEN MIGRATED OVER TO https://github.com/game-by-virtuals/game-python/tree/main. Please move over to use latest SDK and features.
- About G.A.M.E.
- About Virtuals Python SDK
- Features
- Prerequisites
- Installation
- Usage
- How to Contribute
- Documentation
- Useful Resources
The Virtuals Python SDK is a library that allows you interact with the Virtuals Platform.
GAME is a modular agentic framework which enables an agent to plan actions and make decisions autonomously based on information provided to it.
Please refer to our whitepaper for more information and resources.
Currently, this SDK allows you to develop your agents powered by the GAME architecture in its most fullest and most flexible form.
The python SDK is made up of 3 main components (Agent, Worker, function), each with configurable arguments.
Agent (a.k.a. high level planner)
- Takes in a Goal
- Drives the agents behaviour through the high level plan which influences the thinking and creation of tasks that would contribute towards this goal
- Takes in a Description
- Combination of what was previously known as World Info + Agent Description
- This include a description of the "world" the agent lives in, and the personality and background of the agent
Worker (a.k.a. low-level planner)
- Takes in a Description
- Used to control which workers are called by the agent, based on the high-level plan and tasks created to contribute to the goal
Function
- Takes in a Description
- Used to control which functions are called by the workers, based on each worker's low-level plan
- This can be any python executable
- Develop your own custom agents for any application or platform.
- Ability to control your agents and workers via descriptions (prompts)
- Full control of what the agent sees (state) and can do (actions/functions)
- Ability to fully customise functions. This could include various combinations of programmed logic. For example:
- Calling an API to retrieve data
- Calling an API to retrieve data, followed by custom calculations or data processing logic in python code
- 2 API calls chained together (e.g. calling an API to retrieve web data, and then posting a tweet)
- Ability to fully customise functions (previously, each function was a single API call)
- Ability to control the low-level planner via description prompt (previously, only the high-level planner and functions could be controlled via description prompts)
- The description defined in the agent is equivalent to what was previously known as world information and agent description
- Python 3.8 or higher
- pip package manager
- A basic understanding of the GAME framework (refer to our whitepaper)
# Create and activate a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
# Install the package
pip install virtuals_sdk
# Verify installation
python -c "import virtuals_sdk; print(virtuals_sdk.__version__)"The SDK provides a simple way to create and configure your agents. Here's a quick example:
from virtuals_sdk import Agent, Worker
# Create an agent
agent = Agent(
goal="Your agent's goal here",
description="Your agent's description and world information"
)
# Create a worker
worker = Worker(
description="Your worker's description"
)
# Start the agent
agent.start()For more detailed examples, please refer to:
test_agent.py- Example of agent configuration and usagetest_worker.py- Example of worker configuration and usage
Contributions are welcome, especially in the form of new plugins! We are working on creating a plugins repo, but in meantime - please contact us via Twitter or Telegram.
Detailed documentation to better understand the configurable components and the GAME architecture can be found on here.
- TypeScript SDK: The core logic of this SDK mirrors the logic of this python SDK if you prefer to develop your agents in TypeScript.
- Twitter Agent: The Virtuals Platform offers a out-of-the-box hosted agent that can be used to interact with the Twitter/X platform, powered by GAME. This agent comes with existing functions/actions that can be used to interact with the Twitter/X platform and can be immediately hosted/deployed as you configure it. This is similar to configuring your agent in the Agent Sandbox on the Virtuals Platform but through a developer-friendly SDK interface.
