Introduction
articles right here in TDS, we explored the basics of Agentic AI. I’ve been sharing with you some ideas that can make it easier to navigate by means of this sea of content material we’ve got been seeing on the market.
Within the final two articles, we explored issues like:
- How you can create your first agent
- What are instruments and learn how to implement them in your agent
- Reminiscence and reasoning
- Guardrails
- Agent analysis and monitoring
Good! If you wish to examine it, I counsel you take a look at the articles [1] and [2] from the References part.
Agentic AI is among the hottest topics in the intervening time, and there are a number of frameworks you possibly can select from. Thankfully, one factor that I’ve seen from my expertise studying about brokers is that these elementary ideas will be carried over from one to a different.
For instance, the category Agent
from one framework turns into chat
in one other, and even one thing else, however often with related arguments and the exact same goal of connecting with a Massive Language Mannequin (LLM).
So let’s take one other step in our studying journey.
On this submit, we are going to discover ways to create multi-agent groups, opening alternatives for us to let AI carry out extra advanced duties for us.
For the sake of consistency, I’ll proceed to make use of Agno as our framework.
Let’s do that.
Multi-Agent Groups
A multi-agent staff is nothing greater than what the phrase means: a staff with multiple agent.
However why do we’d like that?
Effectively, I created this straightforward rule of thumb for myself that, if an agent wants to make use of greater than 2 or 3 instruments, it’s time to create a staff. The explanation for that is that two specialists working collectively will do a lot better than a generalist.
If you attempt to create the “swiss-knife agent”, the chance of seeing issues going backwards is excessive. The agent will develop into too overwhelmed with completely different directions and the amount of instruments to take care of, so it finally ends up throwing an error or returning a poor outcome.
Alternatively, once you create brokers with a single goal, they are going to want only one device to resolve that drawback, due to this fact rising efficiency and enhancing the outcome.
To coordinate this staff of specialists, we are going to use the category Crew
from Agno, which is ready to assign duties to the correct agent.
Let’s transfer on and perceive what we are going to construct subsequent.
Undertaking
Our venture will likely be targeted on the social media content material era business. We are going to construct a staff of brokers that generates an Instagram submit and suggests a picture primarily based on the subject offered by the person.
- The person sends a immediate for a submit.
- The coordinator sends the duty to the Author
- It goes to the web and searches for that subject.
- The Author returns textual content for the social media submit.
- As soon as the coordinator has the primary outcome, it routes that textual content to the Illustrator agent, so it will probably create a immediate for a picture for the submit.
Discover how we’re separating the duties very effectively, so every agent can focus solely on their job. The coordinator will make it possible for every agent does their work, and they’ll collaborate for a superb closing outcome.
To make our staff much more performant, I’ll limit the topic for the posts to be created about Wine & Nice Meals. This fashion, we slender down much more the scope of data wanted from our agent, and we are able to make its function clearer and extra targeted.
Let’s code that now.
Code
First, set up the mandatory libraries.
pip set up agno duckduckgo-search google-genai
Create a file for atmosphere variables .env
and add the wanted API Keys for Gemini and any search mechanism you’re utilizing, if wanted. DuckDuckGo doesn’t require one.
GEMINI_API_KEY="your api key"
SEARCH_TOOL_API_KEY="api key"
Import the libraries.
# Imports
import os
from textwrap import dedent
from agno.agent import Agent
from agno.fashions.google import Gemini
from agno.staff import Crew
from agno.instruments.duckduckgo import DuckDuckGoTools
from agno.instruments.file import FileTools
from pathlib import Path
Creating the Brokers
Subsequent, we are going to create the primary agent. It’s a sommelier and specialist in gourmand meals.
- It wants a
title
for simpler identification by the staff. - The
function
telling it what its specialty is. - A
description
to inform the agent learn how to behave. - The
instruments
that it will probably use to carry out the duty. add_name_to_instructions
is to ship together with the response the title of the agent who labored on that job.- We describe the
expected_output
. - The
mannequin
is the mind of the agent. exponential_backoff
anddelay_between_retries
are to keep away from too many requests to LLMs (error 429).
# Create particular person specialised brokers
author = Agent(
title="Author",
function=dedent("""
You're an skilled digital marketer who focuses on Instagram posts.
You know the way to write down an enticing, Website positioning-friendly submit.
You understand all about wine, cheese, and gourmand meals present in grocery shops.
You're additionally a wine sommelier who is aware of learn how to make suggestions.
"""),
description=dedent("""
Write clear, participating content material utilizing a impartial to enjoyable and conversational tone.
Write an Instagram caption in regards to the requested {subject}.
Write a brief name to motion on the finish of the message.
Add 5 hashtags to the caption.
Should you encounter a personality encoding error, take away the character earlier than sending your response to the Coordinator.
"""),
instruments=[DuckDuckGoTools()],
add_name_to_instructions=True,
expected_output=dedent("Caption for Instagram in regards to the {subject}."),
mannequin=Gemini(id="gemini-2.0-flash-lite", api_key=os.environ.get("GEMINI_API_KEY")),
exponential_backoff=True,
delay_between_retries=2
)
Now, allow us to create the Illustrator agent. The arguments are the identical.
# Illustrator Agent
illustrator = Agent(
title="Illustrator",
function="You're an illustrator who focuses on footage of wines, cheeses, and fantastic meals present in grocery shops.",
description=dedent("""
Based mostly on the caption created by Marketer, create a immediate to generate an enticing photograph in regards to the requested {subject}.
Should you encounter a personality encoding error, take away the character earlier than sending your response to the Coordinator.
"""),
expected_output= "Immediate to generate an image.",
add_name_to_instructions=True,
mannequin=Gemini(id="gemini-2.0-flash", api_key=os.environ.get("GEMINI_API_KEY")),
exponential_backoff=True,
delay_between_retries=2
)
Creating the Crew
To make these two specialised brokers work collectively, we have to use the category Agent
. We give it a reputation and use the argument
to find out the kind of interplay that the staff could have. Agno makes accessible the modes coordinate
, route
or collaborate
.
Additionally, don’t overlook to make use of share_member_interactions=True
to make it possible for the responses will stream easily among the many brokers. You too can use enable_agentic_context
, that allows staff context to be shared with staff members.
The argument monitoring
is good if you wish to use Agno’s built-in monitor dashboard, accessible at https://app.agno.com/
# Create a staff with these brokers
writing_team = Crew(
title="Instagram Crew",
mode="coordinate",
members=[writer, illustrator],
directions=dedent("""
You're a staff of content material writers working collectively to create participating Instagram posts.
First, you ask the 'Author' to create a caption for the requested {subject}.
Subsequent, you ask the 'Illustrator' to create a immediate to generate an enticing illustration for the requested {subject}.
Don't use emojis within the caption.
Should you encounter a personality encoding error, take away the character earlier than saving the file.
Use the next template to generate the output:
- Publish
- Immediate to generate an illustration
"""),
mannequin=Gemini(id="gemini-2.0-flash", api_key=os.environ.get("GEMINI_API_KEY")),
instruments=[FileTools(base_dir=Path("./output"))],
expected_output="A textual content named 'submit.txt' with the content material of the Instagram submit and the immediate to generate an image.",
share_member_interactions=True,
markdown=True,
monitoring=True
)
Let’s run it.
# Immediate
immediate = "Write a submit about: Glowing Water and sugestion of meals to accompany."
# Run the staff with a job
writing_team.print_response(immediate)
That is the response.

That is how the textual content file seems like.
- Publish
Elevate your refreshment sport with the effervescence of glowing water!
Overlook the sugary sodas, and embrace the crisp, clear style of bubbles.
Glowing water is the final word palate cleanser and a flexible companion for
your culinary adventures.
Pair your favourite glowing water with gourmand delights out of your native
grocery retailer.
Attempt these pleasant duos:
* **For the Basic:** Glowing water with a squeeze of lime, served with
creamy brie and crusty bread.
* **For the Adventurous:** Glowing water with a splash of cranberry,
alongside a pointy cheddar and artisan crackers.
* **For the Wine Lover:** Glowing water with a touch of elderflower,
paired with prosciutto and melon.
Glowing water is not only a drink; it is an expertise.
It is the proper strategy to take pleasure in these particular moments.
What are your favourite glowing water pairings?
#SparklingWater #FoodPairing #GourmetGrocery #CheeseAndWine #HealthyDrinks
- Immediate to generate a picture
A vibrant, eye-level shot inside a gourmand grocery retailer, showcasing a variety
of glowing water bottles with varied flavors. Prepare pairings round
the bottles, together with a wedge of creamy brie with crusty bread, sharp cheddar
with artisan crackers, and prosciutto with melon. The lighting must be shiny
and welcoming, highlighting the textures and colours of the meals and drinks.
After we’ve got this textual content file, we are able to go to no matter LLM we like higher to create pictures, and simply copy and paste the Immediate to generate a picture
.
And here’s a mockup of how the submit can be.

Fairly good, I’d say. What do you assume?
Earlier than You Go
On this submit, we took one other step in studying about Agentic AI. This subject is sizzling, and there are lots of frameworks accessible available in the market. I simply stopped making an attempt to be taught all of them and selected one to start out really constructing one thing.
Right here, we have been in a position to semi-automate the creation of social media posts. Now, all we’ve got to do is select a subject, modify the immediate, and run the Crew. After that, it’s all about going to social media and creating the submit.
Definitely, there may be extra automation that may be carried out on this stream, however it’s out of scope right here.
Relating to constructing brokers, I like to recommend that you simply take the better frameworks to start out, and as you want extra customization, you possibly can transfer on to LangGraph, for instance, which permits you that.
Contact and On-line Presence
Should you favored this content material, discover extra of my work and social media in my web site:
GitHub Repository
https://github.com/gurezende/agno-ai-labs
References
[1. Agentic AI 101: Starting Your Journey Building AI Agents] https://towardsdatascience.com/agentic-ai-101-starting-your-journey-building-ai-agents/
[2. Agentic AI 102: Guardrails and Agent Evaluation] https://towardsdatascience.com/agentic-ai-102-guardrails-and-agent-evaluation/
[3. Agno] https://docs.agno.com/introduction
[4. Agno Team class] https://docs.agno.com/reference/teams/team