Bookmark
Register a local agent as a service
Introduction
This file can be run on any platform supporting Python, with the necessary install permissions. This example shows one local agent registered as an Agent Function on the Agentverse and which can be queried on DeltaV ↗️.
Guide
Supporting documentation
The agent
agent.py
from uagents.setup import fund_agent_if_low
from uagents import Agent, Context, Protocol, Model
import random
from pydantic import Field
from ai_engine import UAgentResponse, UAgentResponseType
import sys
dungeons = Agent(
name="dungeonsanddragonsdiceroll",
port=6145,
seed="RANDOM STRINGS",
endpoint=["http://YOUR_IP:6145/submit"],
)
fund_agent_if_low(dungeons.wallet.address())
@dungeons.on_event("startup")
async def hi(ctx: Context):
ctx.logger.info(dungeons.address)
class Request(Model):
dice_sides: int = Field(description="How many sides does your dice need?")
dice_roll_protocol = Protocol("DungeonsAndDragonsDiceRoll")
@dice_roll_protocol.on_message(model=Request, replies={UAgentResponse})
async def roll_dice(ctx: Context, sender: str, msg: Request):
result = str(random.randint(1, msg.dice_sides))
message = f"Dice roll result: {result}"
await ctx.send(
sender, UAgentResponse(message=message, type=UAgentResponseType.FINAL)
)
dungeons.include(dice_roll_protocol, publish_manifest=True)
dungeons.run()
Register Agent Function
For this step, head to this guide for registering a local Agent Function on the Agentverse ↗️ for a detailed overview of the registration process.