{"id":35673451,"url":"https://github.com/airbytehq/airbyte-agent-connectors","last_synced_at":"2026-04-09T18:19:35.646Z","repository":{"id":327677521,"uuid":"1104847170","full_name":"airbytehq/airbyte-agent-connectors","owner":"airbytehq","description":"🐙 Drop-in tools that give AI agents reliable, permission-aware access to external systems.","archived":false,"fork":false,"pushed_at":"2026-04-01T21:46:35.000Z","size":19869,"stargazers_count":115,"open_issues_count":4,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-02T23:45:57.293Z","etag":null,"topics":["ai","ai-agents","airbyte","anthropic","connectors","data","enterprise","gemini","integrations","langchain","llm","mcp","open-source","openai","pydantic-ai","rag"],"latest_commit_sha":null,"homepage":"https://airbyte.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/airbytehq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-26T19:18:54.000Z","updated_at":"2026-04-01T21:45:33.000Z","dependencies_parsed_at":"2026-04-02T11:04:57.571Z","dependency_job_id":null,"html_url":"https://github.com/airbytehq/airbyte-agent-connectors","commit_stats":null,"previous_names":["airbytehq/airbyte-ai-connectors"],"tags_count":2660,"template":false,"template_full_name":null,"purl":"pkg:github/airbytehq/airbyte-agent-connectors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbytehq%2Fairbyte-agent-connectors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbytehq%2Fairbyte-agent-connectors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbytehq%2Fairbyte-agent-connectors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbytehq%2Fairbyte-agent-connectors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/airbytehq","download_url":"https://codeload.github.com/airbytehq/airbyte-agent-connectors/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbytehq%2Fairbyte-agent-connectors/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31496769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"online","status_checked_at":"2026-04-07T02:00:07.164Z","response_time":105,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","airbyte","anthropic","connectors","data","enterprise","gemini","integrations","langchain","llm","mcp","open-source","openai","pydantic-ai","rag"],"created_at":"2026-01-05T19:24:31.057Z","updated_at":"2026-04-07T02:01:24.306Z","avatar_url":"https://github.com/airbytehq.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://airbyte.ai/\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\".github/images/logo-dark.svg\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\".github/images/logo-light.svg\"\u003e\n      \u003cimg alt=\"Airbyte Logo\" src=\".github/images/logo-dark.svg\" width=\"80%\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cp/\u003e\n\n[![Python](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)\n[![Publish Connectors](https://github.com/airbytehq/airbyte-agent-connectors/actions/workflows/publish.yml/badge.svg)](https://github.com/airbytehq/airbyte-agent-connectors/actions/workflows/publish.yml)\n[![License](https://img.shields.io/badge/License-Elastic_2.0-blue.svg)](LICENSE)\n[![Airbyte Stars](https://img.shields.io/github/stars/airbytehq/airbyte?style=social)](https://github.com/airbytehq/airbyte-agent-connectors)\n[![Slack](https://img.shields.io/badge/Slack-Join_Community-4A154B?logo=slack\u0026logoColor=white)](https://slack.airbyte.com/)\n[![Twitter Follow](https://img.shields.io/twitter/follow/airbytehq?style=social)](https://twitter.com/airbytehq)\n\nAirbyte Agent Connectors are packages that let AI agents call third‑party APIs through strongly typed, well‑documented tools. Each connector is a standalone Python package that you can use directly in your app or plug into an agent framework.\n\n## What this repo contains\n* Python SDKs for specific SaaS APIs (for example Gong, Stripe, GitHub). \n* A consistent connector layout so you can understand and extend any connector quickly. \n* Ready‑to-use clients that validate auth, handle schemas, and expose typed methods for each operation.\n\n## Connector Structure\nEach connector is a standalone Python package:\n\n```\nconnectors/\n├── gong/\n│   ├── airbyte_agent_gong/\n│   ├── pyproject.toml\n│   ├── CHANGELOG.md\n│   ├── README.md\n│   └── REFERENCE.md\n├── github/\n│   └── ...\n└── ...\n```\nInside each connector folder, you’ll find:\n* Generated Python client\n* Connector-specific README with supported operations\n* Typed methods generated from Airbyte’s connector definitions\n* Validation + error handling\n\n## When to use these connectors\nUse Airbyte Agent Connectors when you want:\n* Agent‑friendly data access: Let AI agents call real SaaS APIs (e.g., CRM, billing, analytics) with guardrails and typed responses. \n* Consistent auth and schemas: Reuse a uniform configuration and error‑handling pattern across many APIs. Use connectors inside frameworks like PydanticAI, LangChain, or any custom agent loop.\n* Composable building blocks: Combine multiple connectors in a single agent to orchestrate multi‑system workflows. \nCompared to building ad‑hoc API wrappers, these connectors give you a shared structure, generated clients, and alignment with the rest of the Airbyte ecosystem.\n\n## Roadmap\nWe are actively expanding AI Connectors. Coming soon:\n* Writes!\n* MCP support (Model Context Protocol)\n* Hosted execution, authentication, and search\n* Demo apps + starter templates\n* More connectors added weekly\n\n## Contributing / Feedback\nWe actively welcome feedback, ideas, and bug reports.\nIf you're building AI agents with Airbyte Agent Connectors and want to share ideas or get help, join our community on [slack](https://slack.airbyte.com/). We'd love to hear what you're building and what connectors or capabilities you'd like to see next.\n\n## Agent Skill\n\nThis repo includes an agent skill for setup and usage guidance:\n\n```bash\nnpx skills add airbytehq/airbyte-agent-connectors\n```\n\nOr in Claude Code:\n```\n/install airbytehq/airbyte-agent-connectors\n```\n\nSee [`airbyte-agent-connectors`](skills/airbyte-agent-connectors/SKILL.md) for full usage details.\n\n## Tutorial using the Python SDK\n\nIn this tutorial, you'll create a new Python project with `uv`, add a Pydantic AI agent, equip it to use one of Airbyte's agent connectors, and use natural language to explore your data. This tutorial uses GitHub, but if you don't have a GitHub account, you can use one of Airbyte's other agent connectors and perform different operations.\n\n### Overview\n\nThis tutorial is for AI engineers and other technical users who work with data and AI tools. You can complete it in about 15 minutes.\n\nThe tutorial assumes you have basic knowledge of the following tools, but most software engineers shouldn't struggle with anything that follows.\n\n- Python and package management with uv\n- Pydantic AI\n- GitHub, or a different third-party service you want to connect to\n\n### Before you start\n\nBefore you begin this tutorial, ensure you have the following.\n\n- [Python](https://www.python.org/downloads/) version 3.13 or later\n- [uv](https://github.com/astral-sh/uv)\n- A [GitHub personal access token](https://github.com/settings/tokens). For this tutorial, a classic token with `repo` scope is sufficient.\n- An [OpenAI API key](https://platform.openai.com/api-keys). This tutorial uses OpenAI, but Pydantic AI supports other LLM providers if you prefer.\n\n### Part 1: Create a new Python project\n\nIn this tutorial you initialize a basic Python project to work in. However, if you have an existing project you want to work with, feel free to use that instead.\n\n1. Create a new project using uv:\n\n   ```bash\n   uv init my-ai-agent --app\n   cd my-ai-agent\n   ```\n\n   This creates a project with the following structure:\n\n   ```text\n   my-ai-agent/\n   ├── .gitignore\n   ├── .python-version\n   ├── README.md\n   ├── main.py\n   └── pyproject.toml\n   ```\n\n2. Create an `agent.py` file for your agent definition:\n\n   ```bash\n   touch agent.py\n   ```\n\nYou create `.env` and `uv.lock` files in later steps, so don't worry about them yet.\n\n### Part 2: Install dependencies\n\nInstall the GitHub connector and Pydantic AI. This tutorial uses OpenAI as the LLM provider, but Pydantic AI supports many other providers.\n\n```bash\nuv add airbyte-agent-github pydantic-ai\n```\n\nThis command installs:\n\n- `airbyte-agent-github`: The Airbyte agent connector for GitHub, which provides type-safe access to GitHub's API.\n- `pydantic-ai`: The AI agent framework, which includes support for multiple LLM providers including OpenAI, Anthropic, and Google.\n\nThe GitHub connector also includes `python-dotenv`, which you can use to load environment variables from a `.env` file.\n\n### Part 3: Import Pydantic AI and the GitHub agent connector\n\nAdd the following imports to `agent.py`:\n\n```python title=\"agent.py\"\nimport os\n\nfrom dotenv import load_dotenv\nfrom pydantic_ai import Agent\nfrom airbyte_agent_github import GithubConnector\nfrom airbyte_agent_github.models import GithubAuthConfig\n```\n\nThese imports provide:\n\n- `os`: Access environment variables for your GitHub token and LLM API key.\n- `load_dotenv`: Load environment variables from your `.env` file.\n- `Agent`: The Pydantic AI agent class that orchestrates LLM interactions and tool calls.\n- `GithubConnector`: The Airbyte agent connector that provides type-safe access to GitHub's API.\n- `GithubAuthConfig`: The authentication configuration for the GitHub connector.\n\n### Part 4: Add a .env file with your secrets\n\n1. Create a `.env` file in your project root and add your secrets to it. Replace the placeholder values with your actual credentials.\n\n    ```text title=\".env\"\n    GITHUB_ACCESS_TOKEN=your-github-personal-access-token\n    OPENAI_API_KEY=your-openai-api-key\n    ```\n\n2. Add the following line to `agent.py` after your imports to load the environment variables:\n\n    ```python title=\"agent.py\"\n    load_dotenv()\n    ```\n\n    This makes your secrets available via `os.environ`. Pydantic AI automatically reads `OPENAI_API_KEY` from the environment, and you'll use `os.environ[\"GITHUB_ACCESS_TOKEN\"]` to configure the connector in the next section.\n\n### Part 5: Configure your connector and agent\n\nNow that your environment is set up, add the following code to `agent.py` to create the GitHub connector and Pydantic AI agent.\n\n#### Define the connector\n\nDefine the agent connector for GitHub. It authenticates using your personal access token.\n\n```python title=\"agent.py\"\nconnector = GithubConnector(\n    auth_config=GithubAuthConfig(\n        access_token=os.environ[\"GITHUB_ACCESS_TOKEN\"]\n    )\n)\n```\n\n#### Create the agent\n\nCreate a Pydantic AI agent with a system prompt that describes its purpose:\n\n```python title=\"agent.py\"\nagent = Agent(\n    \"openai:gpt-4o\",\n    system_prompt=(\n        \"You are a helpful assistant that can access GitHub repositories, issues, \"\n        \"and pull requests. Use the available tools to answer questions about \"\n        \"GitHub data. Be concise and accurate in your responses.\"\n    ),\n)\n```\n\n- The `\"openai:gpt-4o\"` string specifies the model to use. You can use a different model by changing the model string. For example, use `\"openai:gpt-4o-mini\"` to lower costs, or see the [Pydantic AI models documentation](https://ai.pydantic.dev/models/) for other providers like Anthropic or Google.\n- The `system_prompt` parameter tells the LLM what role it should play and how to behave.\n\n### Part 6: Add tools to your agent\n\nTools let your agent fetch real data from GitHub using Airbyte's agent connector. Without tools, the agent can only respond based on its training data. By registering connector operations as tools, the agent can decide when to call them based on natural language questions.\n\nAdd the following code to `agent.py`.\n\n```python title=\"agent.py\"\n# Tool to list issues in a repository\n@agent.tool_plain\nasync def list_issues(owner: str, repo: str, limit: int = 10) -\u003e str:\n    \"\"\"List open issues in a GitHub repository.\"\"\"\n    result = await connector.issues.list(owner=owner, repo=repo, states=[\"OPEN\"], per_page=limit)\n    return str(result.data)\n\n\n# Tool to list pull requests in a repository\n@agent.tool_plain\nasync def list_pull_requests(owner: str, repo: str, limit: int = 10) -\u003e str:\n    \"\"\"List open pull requests in a GitHub repository.\"\"\"\n    result = await connector.pull_requests.list(owner=owner, repo=repo, states=[\"OPEN\"], per_page=limit)\n    return str(result.data)\n```\n\nThe `@agent.tool_plain` decorator registers each function as a tool the agent can call. The docstring becomes the tool's description, which helps the LLM understand when to use it. The function parameters become the tool's input schema, so the LLM knows what arguments to provide.\n\nWith these two tools, your agent can answer questions about issues, pull requests, or both. For example, it can compare open issues against pending PRs to identify which issues might be resolved soon.\n\n### Part 7: Run your project\n\nNow that your agent is configured with tools, update `main.py` and run your project.\n\n1. Update `main.py`. This code creates a simple chat interface in your command line tool and allows your agent to remember your conversation history between prompts.\n\n    ```python title=\"main.py\"\n    import asyncio\n    from agent import agent\n\n    async def main():\n        print(\"GitHub Agent Ready! Ask questions about GitHub repositories.\")\n        print(\"Type 'quit' to exit.\\n\")\n\n        history = None\n\n        while True:\n            prompt = input(\"You: \")\n            if prompt.lower() in ('quit', 'exit', 'q'):\n                break\n            result = await agent.run(prompt, message_history=history)\n            history = result.all_messages()  # Call the method\n            print(f\"\\nAgent: {result.output}\\n\")\n\n    if __name__ == \"__main__\":\n        asyncio.run(main())\n    ```\n\n2. Run the project.\n\n    ```bash\n    uv run main.py\n    ```\n\n#### Chat with your agent\n\nThe agent waits for your input. Once you prompt it, the agent decides which tools to call based on your question, fetches the data from GitHub, and returns a natural language response. Try prompts like:\n\n- \"List the 10 most recent open issues in airbytehq/airbyte\"\n- \"What are the 10 most recent pull requests that are still open in airbytehq/airbyte?\"\n- \"Are there any open issues that might be fixed by a pending PR?\"\n\nThe agent has basic message history within each session, and you can ask followup questions based on its responses.\n\n#### Troubleshooting\n\nIf your agent fails to retrieve GitHub data, check the following:\n\n- **HTTP 401 errors**: Your `GITHUB_ACCESS_TOKEN` is invalid or expired. Generate a new token and update your `.env` file.\n- **HTTP 403 errors**: Your token doesn't have the required scopes. Ensure your token has `repo` scope for accessing repository data.\n- **OpenAI errors**: Verify your `OPENAI_API_KEY` is valid, has available credits, and won't exceed rate limits.\n\n### Summary\n\nIn this tutorial, you learned how to:\n\n- Set up a new Python project with `uv`\n- Add Pydantic AI and Airbyte's GitHub agent connector to your project\n- Configure environment variables and authentication\n- Add tools to your agent using the GitHub connector\n- Run your project and use natural language to interact with GitHub data\n\n### Next steps\n\n- Add more tools and agent connectors to your project. For GitHub, you can wrap additional operations (like search, comments, or commits) as tools. Explore other agent connectors in the repository to give your agent access to more services.\n- Consider how you might like to expand your agent's capabilities. For example, you might want to trigger effects like sending a Slack message or an email based on the agent's findings. You aren't limited to the capabilities of Airbyte's agent connectors. You can use other libraries and integrations to build an increasingly robust agent ecosystem.\n\n\n##### Brought to you with love by Airbyte 💜\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairbytehq%2Fairbyte-agent-connectors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fairbytehq%2Fairbyte-agent-connectors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairbytehq%2Fairbyte-agent-connectors/lists"}