Agentverse Hosted Agents
Overview
Hosted Agents are cloud-based Agents managed within the Agentverse, enabling developers to deploy and manage Agents without handling infrastructure. These Agents function as lightweight, efficient tasks, resetting global variables after each call. To maintain state across calls, developers must use Agent Storage for stateful behavior.
Developers can start with blank scripts or use customizable templates for common use cases like retrieving stock prices or finding nearby restaurants. Hosted Agents are highly accessible, requiring no local dependencies, and include an agent.py
file from which you can develop them straightforwardly.
Let’s explore the process and insights you need to get started with Hosted Agents on Agentverse!
Create Hosted Agents
On the Agentverse you can create and host any type of Agent you want to create using the My Agents tab.
Let’s start by heading over to the Agentverse: My Agents tab, click on the + New Agent. Here, there are 2 different ways you can start creating your agent. You can either choose to create an Agent:
- From a Blank Agent.
- From a Skeleton Agent.
Here, click on the + New Agent button and choose Blank Agent.
You will need to provide a name for the Agent you wish to create.
Once you select it, your agent will be ready to be coded and a box will appear in the My Agents page with different data being displayed about the agent you have just created, including the name and the address of the agent.
If you click on your agent box, the code editor will be displayed. This is the Agent Editor; it allows you to create, edit and refine the code for the Agent you have in mind all in one place. The Agent editor provides various basic information about your Agent, including the Agent address and wallet address. For additional information on Agent addresses, have a look at our dedicated documentation here.
The Agent Editor has an integrated agent.py and .env files that allow you to start programming immediately! The Agent Editor offers you the option of structuring your project into several file windows, which are located on the left-hand side of the editor window. All you have to do is enter a name for the new file to be added. An additional feature of the Agent Editor is the Agent Logs; a built-in terminal that displays the output of your script after it has been executed. The Agent Logs provides multiple filters for the different log levels.
The Agent Logs feature is available by clicking the third bottom icon on the left side of the Agent Editor. The first and second buttons enable you to explore Agents Secrets and Agent Storage features.
This way, we aim at making Agents’ development as quick and efficient as possible. This is a great tool to determine if your code runs smoothly and to check if any error arises and solve it immediately!
Documentation and customization for your Agents
Whenever you create an Agent, it is always a good practice to provide a README file, metadata and an Agent’s icon for better reference. The README helps in providing a clear and concise overview of the Agent’s purpose, functionality, and setup instructions. You will be able to see this file within your Agent’s Overview page in Agentverse. On the other hand, the Metadata should serve as a structured summary of your Agent’s configuration, such as its name, description, creator details, and any other specific settings or dependencies. This will help your Agents getting higher score on Agentverse Marketplace, thus increasing their discoverability and usage. Head over to the Agents README Structure guide for guidelines and tips on writing your Agents’ README files. Also, check out the Agent Search Optimization guide for a complete overview on how to enhance the discoverability of Agents across the ecosystem.
Check out the following guide if you have a local Agent which you want to register into the Agentverse using a Mailbox or a Proxy. The guide will help in understanding how to enroll the Agent using these tools, how to possibly set up a README file locally and then publish it on Agentverse for your local Agent.
Additionally, every Agent should have a custom icon (i.e., an Avatar) to visually distinguish it from others. This icon improves the Agent’s identity and usability within the Agentverse. It is possible to customize your agent’s avatar by clicking on your current Agent’s avatar icon and choose either an existing avatar or upload your own! You can do this straightforwardly from the full list of your Hosted Agents or from the Agent Editor when editing information for a particular Agent!
Test network (Testnet) vs Main Network (Mainnet)
We can distinguish between:
-
Testnet: it is a separate blockchain environment that developers and users can use to test new features or applications without risking real tokens. It allows for experimentation in a controlled environment.
-
Mainnet: it is the actual production blockchain where real transactions occur with real tokens. It is the live version of the blockchain.
By setting up and experimenting on a testnet first, developers can ensure that everything works as intended before deploying it on the mainnet. This helps in avoiding potential issues or vulnerabilities in a live environment.
Create your first hosted Agent on the Agentverse!
You are now ready to start using the Agentverse to create and edit your Agents in few minutes! Let’s begin with creating a simple Agent printing “Hello world!” in the Agent Logs on an interval of 3 seconds by using the .on_interval()
Agent Handler.
Here’s an example:
To run the agent, simply click on the Run button. You can stop the script by clicking on the Stop button.
The output will be printed in the Agent Logs window:
Within the Agent Editor, you can import and utilize a predefined set of modules to develop your ideas. These pre-approved modules offer a diverse range of functionalities, allowing you to build complex Agents. For further information on modules being available within the Agentverse Editor, have a look at the following resource: Agentverse: allowed imports.
For additional information on Agent Handlers, check out this guide.
Support for Local Agent Code
You can now import the Agent
class and create your agent with my_agent = Agent(...)
. Note that this is simply a wrapper for your pre-loaded agent
instance, so any custom configuration you add to the Agent will be ignored. This is because the configuration, seed, name, and address for hosted Agents is already set, and is not allowed to be overwritten.
Additionally, you can now use agent.run()
method, but this is also not required. Clicking Run
will cause your agent to run whether you include this command or not. The main reason for supporting this is to unify local and hosted Agent code, so that your Agent code can run as either local or hosted without any modifications.
Exceptions:
-
Use of
Bureau
is not allowed as each Agent project can contain only a single Agent.Check out the AVCTL - Agentverse Command Line Interface to better understand how to possibly interact with the Agentverse. AVCTL provides multiple features (e.g., authorization and hosting management) allowing developers to log in, set up projects, and deploy Agents on the Agentverse.
uagents
Build fast and lightweight for decentralized scenarios using the uagents
Framework. Check out the Agents documentation:
-
Available classes:
Model
,Context
,Protocol
.Example:
copy
requests
This package allows you to interact with HTTP requests and responses.
-
Available functions:
get
,post
,put
,patch
,delete
.Example:
copy
cosmpy
A Python library for interacting with Cosmos-based blockchains. Checkout the CosmPy documentation:
-
Full access to all functions and features.
Example:
copy
pydantic
A package to ensure data validation and settings management. It simplifies the process of defining and validating data models by providing a way to declare and enforce data types, constraints, and validation rules on Python data structures.
-
Full access to all functions and features.
Example:
copy
MySQLdb
MySQLdb
is a Python library for accessing MySQL databases. It provides a Python interface to MySQL, allowing you to interact with MySQL databases from within your Python code.
-
Full access to all functions and features.
Example:
copy
pymongo
pymongo
allows Python applications to interact with MongoDB databases, making it easy to perform various database operations such as inserting, updating, deleting, and querying documents.
-
Full access to all functions and features.
Example:
copy
bs4 (BeautifulSoup)
bs4
make it easy to parse and interact with HTML and XML documents for web scraping or data extraction.
Example:
faiss-cpu
faiss-cpu
allow you to efficiently perform nearest neighbor search on high-dimensional dense vectors. It is used in machine learning for clustering and similarity search.
Example:
fetchai-babble
fetchai-babble
allows you to interact with the Fetch.ai messaging service (called Memorandum):
Example:
google-generativeai
google-generativeai
allows you to build with the Gemini API. The Gemini API gives you access to Gemini models created by Google DeepMind. Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, and code:
Example:
langchain-anthropic
langchain-anthropic
contains the LangChain integration for Anthropic’s generative models:
Example:
langchain-community
langchain-community
contains third-party integrations that implement the base interfaces defined in LangChain Core, making them ready-to-use in any LangChain application. It is automatically installed by langchain, but can also be used separately:
Example:
langchain-core
langchain-core
contains the base abstractions that power the rest of the LangChain ecosystem:
Example:
langchain-google-genai
langchain-google-genai
contains the LangChain integrations for Gemini through their generative-ai SDK:
Example:
langchain-google-vertexai
langchain-google-vertexai
contains the LangChain integrations for Google Cloud generative models:
Example:
langchain-openai
langchain-openai
contains the LangChain integrations for OpenAI through their openai
SDK:
Example:
langchain-text-splitters
langchain-text-splitters
contains utilities for splitting into chunks a wide variety of text documents:
Example:
langchain
langchain
assists in the development of applications integrating with LLMs:
Example:
nltk
nltk
is a package for natural language processing.
Example:
openai
openai
provides easy access to the OpenAI REST API. The library includes type definitions for all request params and response fields, and offers both synchronous and asynchronous clients powered by httpx.
Example:
tenacity
tenacity
is a general-purpose retrying library to simplify the task of adding retry behavior to just about anything.
Example:
unstructured
unstructured
is a library for processing and extracting data from unstructured file formats such as PDFs, Word documents, and more.
Example:
validators
validators
is a Python library designed for data validation. It provides simple functions to verify the validity of various types of data:
Example:
web3
web3
is a Python library for interacting with the Ethereum blockchain. It provides functionalities for sending transactions, interacting with smart contracts, and querying blockchain data:
Example: