Agno integrates seamlessly with a wide range of external services and platforms through its tools ecosystem. This page provides an overview of integration categories and common patterns.
import osfrom agno.agent import Agentfrom agno.tools.github import GithubToolsfrom agno.tools.slack import SlackToolsfrom agno.tools.postgres import PostgresToolsagent = Agent( tools=[ GithubTools(access_token=os.getenv("GITHUB_ACCESS_TOKEN")), SlackTools(token=os.getenv("SLACK_BOT_TOKEN")), PostgresTools(db_url=os.getenv("DATABASE_URL")), ], instructions=[ "You can access GitHub, Slack, and the database", "Coordinate information across all services", "Always confirm before making changes", ])agent.print_response( "Check GitHub for new PRs, summarize them, and post to #engineering on Slack")
# Use time-limited tokens when possiblefrom datetime import datetime, timedelta# Many services support token expirationtools = ServiceTools( token=get_temporary_token(expires=datetime.now() + timedelta(hours=1)))
import osfrom agno.agent import Agentfrom agno.tools.github import GithubToolsfrom agno.tools.slack import SlackToolsagent = Agent( tools=[ GithubTools(access_token=os.getenv("GITHUB_ACCESS_TOKEN")), SlackTools(token=os.getenv("SLACK_BOT_TOKEN")), ], instructions=[ "Monitor GitHub repository activity", "Post important updates to Slack channels", "Format updates clearly with links", ])agent.print_response( "Check for new issues in agno-agi/agno and post a summary to #updates")
try: tools = GithubTools(access_token=os.getenv("GITHUB_ACCESS_TOKEN")) agent = Agent(tools=[tools]) agent.print_response("List my repositories")except Exception as e: print(f"Authentication failed: {e}") print("Check that GITHUB_ACCESS_TOKEN is set correctly")
from time import sleeptry: agent.print_response("Search for repositories")except RateLimitError: print("Rate limit exceeded. Waiting before retry...") sleep(60) # Wait 1 minute agent.print_response("Search for repositories")