Agentverse Functions: register a coin toss agent as a Function
Introduction
In the Agentverse Functions: register your Functions on the Agentverse! guide, you have gotten familiar with the creation of an agent that can be registered as a Function and then be used in DeltaV .
Check out the Functions guide for additional information needed for Agent Functions and their registration on the Agentverse and Fetch network.
Check out the AI Engine package (opens in a new tab) to download it and start integrating your Agents with this tool!
Current version of the AI Engine package is
Prerequisites
Make sure you have read the following resources before going on with this guide:
- Quick Start Guide for uAgents Framework
- Creating your first agent
- Agents address
- Almanac contract
- Register in Almanac
- Agent Functions
- Make your agents AI Engine compatible
- Field descriptions for DeltaV
Create your coin toss agent!
For this navigate to the Agentverse: My Agents (opens in a new tab) tab and click on the + New Agent button:
When the dialog is open, select the Toss a Coin use case:
A new agent will be created for you:
Run your coin toss agent!
After clicking on the row of your newly created agent, you should be able to see the source code of your coin toss agent in the editor view:
agent.py""" This is a simple coin toss agent that is compatible with DeltaV. """ from uagents import Agent, Context, Field, Model, Protocol from ai_engine import UAgentResponse, UAgentResponseType import random agent = Agent() class CoinToss(Model): choice: str = Field(description="The choice. Must be heads or tails.") coin_toss_protocol = Protocol("CoinToss") @coin_toss_protocol.on_message(model=CoinToss, replies={UAgentResponse}) async def toss_coin(ctx: Context, sender: str, msg: CoinToss): """Simulates a coin toss, compares the result to the sender's choice and send back result""" random_number = random.randint(0, 1) if random_number == 0: coin_tossed = "heads" else: coin_tossed = "tails" if coin_tossed == msg.choice: message = "You won!" else: message = "You lost!" await ctx.send( sender, UAgentResponse(message=message, type=UAgentResponseType.FINAL) ) # Include protocol in agent agent.include(coin_toss_protocol, publish_manifest=True) if __name__ == "__main__": agent.run()
Now click on the Run button in the upper right corner of the editor so that you have your coin toss agent up and running!
Register your coin toss agent function!
Similar to the this guide , let's navigate to the Agentverse: My Agents (opens in a new tab) tab. Here, click on your agent to show the Agent Editor and then click on the Deploy tab to start registering your agent function. For Agents build up from a pre-defined Agent, the function will be already available once you build them. Indeed, you will see something similar to:
Otherwise, if you want to register a newly created Function for your Agent, click the + New Function button. This way, you will need to provide all details required:
- Function title: just the name of your Agent Function. In this example let's call it Coin toss function
- Description: Super important to be as detailed as you can, as reasoning engine looks at descriptions to understand what your Function does. In this example we can specify something like this: Coin toss Function. Takes the "heads" or "tails" input from the user and based on it decides if the user won or lost.
- Application, Protocol, Model and Field descriptions will be automatically populated based on the source code of your coin toss agent
Let's find our service on DeltaV
Now, head to DeltaV (opens in a new tab) and sign in.
First, in the What function would you like to assemble? bar you can provide a predefined objective; let's type Toss a coin
.
We encourage everyone operating on DeltaV to select the Next Generation AI Engine personality type. This AI Engine personality stands as a significant personality type offering enhanced scalability, reliability, and flexibility. The major key features include advanced context understanding, improved function recommendations, and the ability to handle multiple dialogue formats.
After being redirected to the chat screen, you will be asked to select an option.
As your objective task (Toss a coin
) specified on the previous screen contained words related to the description of your coin toss agent , your Coin Toss Function is listed as an option.
Let's select it.
After selecting the task, you will be asked if you want to pick heads
or tails
. The AI Engine behind DeltaV asks this question based on the description. The choice must be heads or tails.
Select whichever option you feel like. In this case let's pick heads
.
Then, you can confirm or reject the context that the AI Engine is planning to execute. Let's confirm it!
After your function has been executed you can see the You won!
or You lost!
message.
With that, you have gotten a Coin Toss Function which can be discovered and contacted with DeltaV. Awesome!