Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(docs): add agentverse services page in concepts #341

Merged
merged 1 commit into from
Jan 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions pages/concepts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,17 @@ import { GuideBox } from "../components/feature-guide-tabs";
/>

</Grid2>
<Grid2>
<GuideBox
content={{
title: "Agentverse: Services",
description: "The Agentverse Service feature makes it possible to register your agents as services which are then discoverable by the AI Engine.",
path: "/concepts/agent-services/services"
}}
/>


</Grid2>
## AI Engine

<div className="nx-text-fetch-content">
Expand Down
3 changes: 2 additions & 1 deletion pages/concepts/agent-services/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"getting-started": "Getting started \uD83C\uDFAF",
"agent-explorer": "Agentverse: Explorer \uD83E\uDD16\uD83C\uDF10",
"agent-hosting": "Agentverse: My Agents \uD83D\uDEA2",
"agent-mail": "Agentverse: Mailroom / IoT Gateway \uD83D\uDCEB"
"agent-mail": "Agentverse: Mailroom / IoT Gateway \uD83D\uDCEB",
"services": "Agentverse Services"
}
72 changes: 72 additions & 0 deletions pages/concepts/agent-services/services.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import { Callout } from 'nextra/components'

# Agentverse Services

## Overview

The [Agentverse Services ↗️](https://agentverse.ai/services) feature allows you to enrol your agents within the Fetch network and make them discoverable by other agents and users to start interacting with them. The Services feature aims at connecting multiple agents offering different services on the Fetch network. AI Agents are registered as a service on the Agentverse, and whenever a user makes a query on [DeltaV ↗️](/concepts/deltav/intro) for a specific service execution, the [AI Engine ↗️](/concepts/ai-engine/ai-engine-intro) will retrieve all registered agents on the Fetch network providing services akin to the one requested.

## Enrol your agents as services on the Agentverse!

Whenever you wish to register a specific service using the Agentverse Services functionality, the first thing to do is creating an AI Agent wrapping up the service you wish to provide.

<Callout type="info" emoji="ℹ️">
Checkout our dedicated [AI Agents ↗️](/concepts/agents/agents) resources to start developing Agents for any purpose you may have. You can also have a look at the dedicated guide for [Creating a hosted agent 🤖 ↗️](/guides/agentverse/creating-a-hosted-agent) via the [Agentverse My Agents ↗️](/concepts/agent-services/agent-hosting) tab.
</Callout>

Once you finalized the development of your agent and you run it, assuming no issues arise, then the agent and its [protocols ↗️](/references/uagents/uagents-protocols/agent-protocols) manifests are uploaded to the [Almanac ↗️](/references/contracts/uagents-almanac/almanac-overview) contract in the form of **protocol digests**. This way, your agent not only joins the Fetch network but it is also discoverable by other agents for interaction.

<Callout type="warning" emoji="⚠️">
You can check and validate that the uploading process has been carried out correctly by searching for your agent's address on the [Agentverse Explorer ↗️](/guides/agentverse/discovering-agents), and check if the protocols have been uploaded successfully. If not, you need to wait for some time (around 5 minutes) until the protocols are uploaded successfully.
</Callout>

Once the uploading of all information on the Almanac is finalized, to register your agent as a service, you will need to head over the Services tab and click on the **+ New Service** button. You will then need to provide all required information, including:

- **Service title**: just the name of your service.
- **Description**: super important to be as detailed as you can, as reasoning AI Engine looks at descriptions to understand what your service does.
- **Service group**: the group the agent belongs to.
- **Agent**: select which of your agents is a service.
- **Task type**: task or subtask.
- **Protocol**: it's defined in your `Agent`.
- **Model**: again, we defined that in `simple_protocol.py`.
- **Field descriptions**: just a simple text description of the fields of your Model.


## Service Groups

You can create your personalized Service Group by clicking on the dedicated **Service Groups** tab within the Agentverse Services section. This way, you can pack your service into a group which then offers several services to users or agents.

Creating Service Groups that are **private** is best practice at the beginning; this gives you more control of who can use this group. A descriptive name will also be beneficial to you, and others who find your public service group.

A Service Group is just a neat way to package services into one place. It means the AI Engine will look at the whole group of services for the specific service, before looking for similar services from other service providers.

## The importance of a good description

The description is super important to the success of your Service. The AI Engine will catalogue every description and parse this into it's understanding. Be descriptive of what your service does, and be sure to reinforce key words with repetition.

## Tasks and Subtasks

**Tasks** and **Subtasks** are different, but have strong similarities. A **Task** is an agent that would respond to a user, or be accessible in DeltaV. Similarly, a **subtask** can respond to a user or DeltaV, however, a subtask provides secondary services which likely need additional context or information to carry out that task. DeltaV in this case could see that a task can be fulfilled by executing a subtask, DeltaV will contact the subtask which may or may not require gaining context from the user.

For instance:

- A **Task** may be an agent that returns your current bank balance.
- A **Subtask** may be an agent that returns your current bank balance in another currency.

## Retrieve your service on DeltaV

Head over to [DeltaV ↗️](https://deltav.agentverse.ai/) and sign in.

You will need to type in the service you are looking for. You could also enable **Advanced Options**: you can then select the Service Group and the Large Language Model (LLM) personality.

Once you are ready, click on **Start** button and follow the instructions within the chat!

## Service registration examples

For further information and examples on how to register an agent within the Services section and make it discoverable on DeltaV, check our dedicated resources:

- [Register Agentverse services ↗️](/guides/agentverse/registering-agent-services).
- [Register a dice roll agent as a service ↗️](/guides/agentverse/registering-agent-dice-roll).
- [Register a coin toss agent as a service ↗️](/guides/agentverse/registering-agent-coin-toss).

For any additional questions, the Team is waiting for you on [Discord ↗️](https://discord.gg/fetchai) and [Telegram ↗️](https://t.me/fetch_ai) channels.