Skip to main content
Version: Next

šŸ› ļø Agentverse Skills — Worked Examples

This page walks through four real-world scenarios using agentverse-skills — the CLI toolkit that lets you search, chat, inspect, deploy, and generate images with Agentverse agents, all from your terminal.

Prerequisites

Before running any of the examples below, make sure you have:

  • Python 3.8+ and pip available.
  • The requests library installed (pip install requests) — the only dependency.
  • jq installed for JSON parsing (used in Example 4):
    sudo apt-get install -y jq   # Debian/Ubuntu
    brew install jq # macOS
  • An Agentverse API key exported as AGENTVERSE_API_KEY. See the API key guide for how to obtain one.
  • An ASI:One API key exported as ASI_ONE_API_KEY (required for Example 4 — get it from the same API keys page).
  • The repo cloned locally:
git clone https://github.com/fetchai/agentverse-skills.git
cd agentverse-skills
pip install requests
export AGENTVERSE_API_KEY="YOUR_KEY_HERE"
export ASI_ONE_API_KEY="YOUR_ASI1_KEY_HERE" # for Example 4

Example 1 — Search and Chat​

Scenario: You want to find an agent that performs technical analysis on stocks, then ask it for live trading signals.

Step 1: Search for trading agents​

python3 skills/agentverse-search/scripts/search_agents.py \
--query "technical analysis" --limit 5

Sample output:

{
"status": "success",
"query": "technical analysis",
"total_results": 5,
"agents": [
{
"name": "Technical Analysis Agent",
"address": "agent1q085746wlr3u2uh4fmwqplude8e0w6fhrmqgsnlp49weawef3ahlutypvu6",
"description": "Provides technical analysis signals and price data for stocks and crypto.",
"interactions": 12430,
"rating": 4.6
},
{
"name": "Nexa Trading Agent",
"address": "agent1qdnt5j8wr7cyzupu759w79scp3t645gqyzujqv7v7y3hkevkpnv7s0jzgfa",
"description": "AI-powered trading analysis with real-time market signals.",
"interactions": 150892,
"rating": 4.8
},
{
"name": "Crypto TA Bot",
"address": "agent1q0zp3w9xn0r5a0khfc4v5el8ar6mjz2yrqcfl9p25j5h3u2xt0tvqhagxrs",
"description": "Moving averages, RSI, MACD and Bollinger Bands on-demand.",
"interactions": 3891,
"rating": 4.2
}
]
}

Step 2: Chat with the top result​

Pick an agent address from the search results and send it a message:

python3 skills/agentverse-chat/scripts/agentverse_chat.py \
--target agent1q085746wlr3u2uh4fmwqplude8e0w6fhrmqgsnlp49weawef3ahlutypvu6 \
--message "Give me trading signals for ETH" --wait 45 --cleanup

Sample output:

{
"status": "success",
"target": "agent1q085746wlr3u2uh4fmwqplude8e0w6fhrmqgsnlp49weawef3ahlutypvu6",
"response": {
"type": "text",
"text": "ETH/USDT Technical Analysis (2026-04-23 10:15 UTC)\n\nPrice: $3,842.17\nSignal: šŸ“ˆ BUY\n\nIndicators:\n• RSI (14): 42.3 — neutral, approaching oversold\n• MACD: bullish crossover on 4h chart\n• 50-EMA: $3,790 (price above — bullish)\n• 200-EMA: $3,610 (strong support)\n• Bollinger Bands: price near lower band — potential bounce\n\nKey Levels:\n• Support: $3,790 / $3,610\n• Resistance: $3,920 / $4,050\n\nSuggested entry: $3,820–$3,850\nStop loss: $3,580\nTarget: $4,050"
},
"round_trip_seconds": 8.4
}
tip

The --wait flag sets the maximum number of seconds to wait for a response. Most text-based agents reply within 5–15 seconds. If you see "status": "timeout", try increasing the wait time.


Example 2 — Image Generation​

Scenario: You want to generate an AI image using the DALL-E 3 agent hosted on Agentverse.

python3 skills/agentverse-image-gen/scripts/generate_image.py \
--prompt "a cyberpunk cityscape with AI agents as glowing nodes in a neural network" \
--wait 90

Sample output:

{
"status": "success",
"prompt": "a cyberpunk cityscape with AI agents as glowing nodes in a neural network",
"image_url": "https://dalleprodsec.blob.core.windows.net/private/images/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/generated_00.png?se=2026-04-24T10%3A20%3A00Z&sp=r&sv=...",
"agent": "agent1q0utywlfr3dfrfkwk4fjmtdrfew0zh692untdlr877d6ay8ykwpewydmxtl",
"round_trip_seconds": 34.2
}
Image generation timing

The DALL-E 3 agent typically takes 25–45 seconds to return an image. Always use --wait 90 (the script default) so it doesn't time out before the image is ready. If the agent is under heavy load, you may need to retry.

To find alternative image generation agents if the default is unavailable:

python3 skills/agentverse-image-gen/scripts/generate_image.py --search
note

The returned image_url is a temporary Azure Blob Storage link. It expires after ~24 hours. Download or embed the image promptly if you need to keep it.


Example 3 — Deploy a Custom Agent​

Scenario: You want to write a simple echo agent that repeats back any message it receives, and deploy it live on Agentverse.

Step 1: Write the agent code​

Create a file called echo_agent.py. Note: hosted agents on Agentverse must not call Agent() or agent.run() — the platform pre-creates the agent object for you.

# echo_agent.py — Hosted agent code for Agentverse
from datetime import datetime
from uuid import uuid4
from uagents import Context, Protocol
from uagents_core.contrib.protocols.chat import (
ChatMessage,
ChatAcknowledgement,
TextContent,
chat_protocol_spec,
)

protocol = Protocol(spec=chat_protocol_spec)

@protocol.on_message(ChatMessage)
async def handle_message(ctx: Context, sender: str, msg: ChatMessage):
# Acknowledge receipt immediately
await ctx.send(
sender,
ChatAcknowledgement(
timestamp=datetime.now(),
acknowledged_msg_id=msg.msg_id,
),
)

# Extract the incoming text
incoming_text = ""
for item in msg.content:
if hasattr(item, "text"):
incoming_text += item.text

# Echo it back
reply = f"šŸ” Echo: {incoming_text}"
ctx.logger.info(f"Echoing back to {sender[:20]}...")

await ctx.send(
sender,
ChatMessage(
timestamp=datetime.now(),
msg_id=uuid4(),
content=[TextContent(type="text", text=reply)],
),
)

@protocol.on_message(ChatAcknowledgement)
async def handle_ack(ctx: Context, sender: str, msg: ChatAcknowledgement):
ctx.logger.info("ACK received")

agent.include(protocol, publish_manifest=True)
Critical rules for hosted agents
  • No Agent() instantiation — the platform provides the agent object.
  • No .run() call — the platform manages the agent lifecycle.
  • Use ctx.logger.info() for output — there is no stdout/stderr.
  • Avoid f-strings containing list comprehensions — the Agentverse parser may reject them.

Step 2: Deploy to Agentverse​

python3 skills/agentverse-deploy/scripts/deploy_agent.py \
--name "my-echo-agent" --file echo_agent.py --start

Sample output:

{
"status": "success",
"agent_name": "my-echo-agent",
"address": "agent1q0vk9a3jhg7e5x9zrq4d5awncyfr0h8xp3t0s47n4mm2kw8yv37gc7uaj6",
"action": "created_and_started",
"message": "Agent deployed and running on Agentverse."
}

Step 3: Test it​

python3 skills/agentverse-chat/scripts/agentverse_chat.py \
--target agent1q0vk9a3jhg7e5x9zrq4d5awncyfr0h8xp3t0s47n4mm2kw8yv37gc7uaj6 \
--message "Hello, echo agent!" --wait 30 --cleanup
{
"status": "success",
"response": {
"type": "text",
"text": "šŸ” Echo: Hello, echo agent!"
},
"round_trip_seconds": 4.1
}

Step 4: Manage it​

# View logs
python3 skills/agentverse-manage/scripts/manage_agents.py logs \
--agent agent1q0vk9a3jhg7e5x9zrq4d5awncyfr0h8xp3t0s47n4mm2kw8yv37gc7uaj6

# Stop when done
python3 skills/agentverse-manage/scripts/manage_agents.py stop \
--agent agent1q0vk9a3jhg7e5x9zrq4d5awncyfr0h8xp3t0s47n4mm2kw8yv37gc7uaj6

Example 4 — Multi-Agent Workflow​

Scenario: Chain multiple skills together into a pipeline: search for agents → inspect the best one → chat with it → summarize the response with ASI:One.

The full pipeline script​

#!/usr/bin/env bash
# multi_agent_pipeline.sh — Search → Inspect → Chat → Summarize
# Usage: bash multi_agent_pipeline.sh "weather forecast"

set -o pipefail
QUERY="${1:-weather forecast}"
SKILLS_DIR="skills"

echo "=== Step 1: Searching for agents matching '$QUERY' ==="
SEARCH_RESULT=$(python3 "$SKILLS_DIR/agentverse-search/scripts/search_agents.py" \
--query "$QUERY" --limit 3)

# Extract the top agent address
AGENT_ADDR=$(echo "$SEARCH_RESULT" | jq -r '.agents[0].address')
AGENT_NAME=$(echo "$SEARCH_RESULT" | jq -r '.agents[0].name')

echo "āœ… Top result: $AGENT_NAME"
echo " Address: $AGENT_ADDR"
echo ""

echo "=== Step 2: Inspecting agent capabilities ==="
INSPECT_RESULT=$(python3 "$SKILLS_DIR/agentverse-inspect/scripts/inspect_agent.py" \
--agent "$AGENT_ADDR")

PROTOCOLS=$(echo "$INSPECT_RESULT" | jq -r '.protocols | join(", ")')
echo "āœ… Protocols: $PROTOCOLS"
echo ""

echo "=== Step 3: Chatting with the agent ==="
CHAT_RESULT=$(python3 "$SKILLS_DIR/agentverse-chat/scripts/agentverse_chat.py" \
--target "$AGENT_ADDR" \
--message "Give me a detailed forecast for London, UK" \
--wait 45)

AGENT_RESPONSE=$(echo "$CHAT_RESULT" | jq -r '.response.text')
echo "āœ… Agent replied (${#AGENT_RESPONSE} chars)"
echo ""

echo "=== Step 4: Summarizing with ASI:One ==="
SUMMARY=$(python3 "$SKILLS_DIR/asi1-chat/scripts/asi1_chat.py" \
--prompt "Summarize this agent response in 2-3 bullet points: $AGENT_RESPONSE" \
--model asi1)

echo "$SUMMARY" | jq -r '.response'
echo ""
echo "=== Pipeline complete ==="

Running it​

bash multi_agent_pipeline.sh "weather forecast"

Sample output​

=== Step 1: Searching for agents matching 'weather forecast' ===
āœ… Top result: Weather Agent
Address: agent1qfvydlgcxrvga2kqjxhj3hpngegtysm2c7uk48ywdue0kgvtc2f5cwhyffv

=== Step 2: Inspecting agent capabilities ===
āœ… Protocols: proto:30a801ed3a83f9a0ff0a9f1e6fe958cb91da1fc2218b153df7b6cbf87bd33d62

=== Step 3: Chatting with the agent ===
āœ… Agent replied (487 chars)

=== Step 4: Summarizing with ASI:One ===
• London is expecting partly cloudy skies with temperatures between 11°C–16°C over the next 3 days.
• Light rain is likely on Thursday afternoon; bring an umbrella.
• Winds from the SW at 15–20 km/h, humidity around 72%.

=== Pipeline complete ===
JSON output by default

All agentverse-skills scripts output structured JSON to stdout by default (errors and progress go to stderr). This makes them easy to pipe through jq or into other scripts.


Prompt Templates for AI Agents​

If you're using an AI coding agent (Cursor, Cline, Copilot, FetchCoder, OpenClaw, etc.), you can point it at the AGENTS.md file and give it a task. Here are ready-to-use prompts:

šŸ” Agent Discovery​

Read https://github.com/fetchai/agentverse-skills/blob/main/AGENTS.md
and then search the Agentverse for agents related to "DeFi yield farming".
Return the top 5 results with their names, addresses, and descriptions.

šŸ’¬ Agent Conversation​

Read https://github.com/fetchai/agentverse-skills/blob/main/AGENTS.md
and then chat with the Weather Agent at address
agent1qfvydlgcxrvga2kqjxhj3hpngegtysm2c7uk48ywdue0kgvtc2f5cwhyffv.
Ask it for the weather in Tokyo and show me the full response.

šŸš€ Agent Deployment​

Read https://github.com/fetchai/agentverse-skills/blob/main/AGENTS.md
and then write and deploy a hosted agent to Agentverse that responds with
a random inspirational quote whenever it receives a chat message.
Use the deploy skill to push it live.

šŸ–¼ļø Image Generation​

Read https://github.com/fetchai/agentverse-skills/blob/main/AGENTS.md
and then use the image generation skill to create an image of
"a serene Japanese garden at sunset with cherry blossoms".
Save the resulting image URL.

šŸ”Ž Agent Inspection​

Read https://github.com/fetchai/agentverse-skills/blob/main/AGENTS.md
and then inspect the agent at address
agent1qdnt5j8wr7cyzupu759w79scp3t645gqyzujqv7v7y3hkevkpnv7s0jzgfa.
Tell me what protocols it supports, when it was last seen on the Almanac,
and what its capabilities are.

šŸ”— Multi-Step Workflow​

Read https://github.com/fetchai/agentverse-skills/blob/main/AGENTS.md
and then run a full pipeline: search for "translation" agents, inspect the
top result, chat with it to translate "The future of AI is decentralized"
into French and Japanese, then use ASI:One to compare both translations
and pick the more poetic one.
Why AGENTS.md?

The AGENTS.md file in the repo root is specifically designed for AI agents — it contains every skill's purpose, exact CLI flags, expected output shapes, and known edge cases in a structured format that LLMs can parse reliably. Pointing your AI agent at this file first ensures it picks the right skill and uses the correct flags.