Skip to main content
This example demonstrates a team where member interactions during the current run are shared with other members through share_member_interactions=True. This allows members to see what other members have done during the same run, enabling better coordination and avoiding duplicate work.

How it Works

When share_member_interactions=True, interaction details are appended to tasks sent to members:
<member_interaction_context>
- Member: User Profile Agent
- Task: Get the user's profile information
- Response: {"name": "John Doe", "email": "john.doe@example.com", ...}

- Member: Technical Support Agent
- Task: Answer technical support questions
- Response: Here's how to change your billing address...
</member_interaction_context>
This allows the Billing Agent to see that the User Profile Agent has already retrieved the user’s information, avoiding duplicate tool calls.

When to Use

Use share_member_interactions=True when:
  • Multiple members might need the same information
  • You want to avoid duplicate API calls or tool executions
  • Members need to coordinate their actions during a single run
  • One member’s work builds on another’s within the same request

Code

share_member_interactions.py
from uuid import uuid4

from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIChat
from agno.team.team import Team


def get_user_profile() -> dict:
    """Get the user profile."""
    return {
        "name": "John Doe",
        "email": "john.doe@example.com",
        "phone": "1234567890",
        "billing_address": "123 Main St, Anytown, USA",
        "login_type": "email",
        "mfa_enabled": True,
    }


user_profile_agent = Agent(
    name="User Profile Agent",
    role="You are a user profile agent that can retrieve information about the user and the user's account.",
    model=OpenAIChat(id="gpt-5-mini"),
    tools=[get_user_profile],
)

technical_support_agent = Agent(
    name="Technical Support Agent",
    role="You are a technical support agent that can answer questions about the technical support.",
    model=OpenAIChat(id="gpt-5-mini"),
)

billing_agent = Agent(
    name="Billing Agent",
    role="You are a billing agent that can answer questions about the billing.",
    model=OpenAIChat(id="gpt-5-mini"),
)


support_team = Team(
    name="Technical Support Team",
    model=OpenAIChat("o3-mini"),
    members=[user_profile_agent, technical_support_agent, billing_agent],
    instructions=[
        "You are a technical support team for a Facebook account that can answer questions about the technical support and billing for Facebook.",
        "Get the user's profile information first if the question is about the user's profile or account.",
    ],
    db=SqliteDb(
        db_file="tmp/technical_support_team.db"
    ),  # Add a database to store the conversation history. This is a requirement for history to work correctly.
    share_member_interactions=True,  # Send member interactions DURING the current run to the other members.
    show_members_responses=True,
)


session_id = f"conversation_{uuid4()}"

## Ask question about technical support
support_team.print_response(
    "What is my billing address and how do I change it?",
    stream=True,
    session_id=session_id,
)

support_team.print_response(
    "Do I have multi-factor enabled? How do I disable it?",
    stream=True,
    session_id=session_id,
)

Usage

1

Create a virtual environment

Open the Terminal and create a python virtual environment.
python3 -m venv .venv
source .venv/bin/activate
2

Install required libraries

pip install agno openai
3

Set environment variables

export OPENAI_API_KEY=****
4

Run the agent

python share_member_interactions.py
I