Remote Team
Demonstrates calling and streaming a team hosted on a remote AgentOS instance.
"""
Remote Team
=============================
Demonstrates calling and streaming a team hosted on a remote AgentOS instance.
"""
import asyncio
import socket
from agno.exceptions import RemoteServerUnavailableError
from agno.team import RemoteTeam
# ---------------------------------------------------------------------------
# Create Team
# ---------------------------------------------------------------------------
remote_team = RemoteTeam(
base_url="http://localhost:7778",
team_id="research-team",
)
# ---------------------------------------------------------------------------
# Run Team
# ---------------------------------------------------------------------------
async def remote_team_example() -> None:
response = await remote_team.arun(
"What is the capital of France?",
user_id="user-123",
session_id="session-456",
)
print(response.content)
async def remote_streaming_example() -> None:
async for chunk in remote_team.arun(
"Tell me a 2 sentence horror story",
session_id="session-456",
user_id="user-123",
stream=True,
):
if hasattr(chunk, "content") and chunk.content:
print(chunk.content, end="", flush=True)
async def main() -> None:
print("=" * 60)
print("RemoteTeam Examples")
print("=" * 60)
print("\n1. Remote Team Example:")
await remote_team_example()
print("\n2. Remote Streaming Example:")
await remote_streaming_example()
if __name__ == "__main__":
try:
asyncio.run(main())
except (
ConnectionError,
TimeoutError,
OSError,
socket.gaierror,
RemoteServerUnavailableError,
) as exc:
print(
"\nRemoteTeam server is not available. Start a remote AgentOS instance at "
"http://localhost:7778 and rerun this cookbook."
)
print(f"Original error: {exc}")Start the matching AgentOS server
Save this as research_server.py. It registers the research-team ID on port 7778, matching the client above.
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.os import AgentOS
from agno.team import Team
research_team = Team(
id="research-team",
model=OpenAIResponses(id="gpt-5.6-luna"),
members=[Agent(name="Researcher", model=OpenAIResponses(id="gpt-5.6-luna"))],
)
agent_os = AgentOS(teams=[research_team])
app = agent_os.get_app()
if __name__ == "__main__":
agent_os.serve(app=app, host="127.0.0.1", port=7778)Set OPENAI_API_KEY in the server terminal and run python research_server.py. Leave it running, then run remote_team.py in a second terminal. The API key is used by the server's models. The client passes IDs, but conversation history requires a database and history configuration on the hosted team; this minimal server does not persist it.
Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno openai fastapi uvicornRun the example
Save the code above as remote_team.py, then run:
python remote_team.pyFull source: cookbook/03_teams/14_run_control/remote_team.py