Skip to content

blairhudson/fastapi-agents

Repository files navigation

FastAPI Agents

FastAPI Agents is the ultimate FastAPI extension for integrating AI agents into your applications. With just a few lines of code, you can create, manage, and secure AI-powered endpoints, enabling you to build smarter, more interactive apps effortlessly. Whether you're a seasoned developer or just exploring AI integrations, FastAPI Agents has you covered! 🎉

✨ Features at a Glance

  • 🤖 Easy Agent Management: Register, organize, and interact with multiple AI agents seamlessly.
  • 🔐 Built-In Security: Easily add API key, OAuth2, cookie, or OpenID authentication to your endpoints.
  • 📚 Agent Framework Support: Compatible with agent frameworks like PydanticAI, Llama-Index, HuggingFace Smolagents and CrewAI.
  • 🐳 Pre-Built Containers: Easily deploy agents in your favourite framework with ready made containers.
  • 🔌 OpenAI Compatibility: Use your APIs with other AI tooling including the OpenAI SDK itself. (Experimental)
  • 🛠️ Extensibility: Support additional agent frameworks by extending the BaseAgent class.
  • 🧩 Dynamic Dependencies: Inject and resolve request-specific configurations effortlessly.
  • 🚀 Performance Optimized: Leverage FastAPI's high performance and scalability for AI agent interactions.
  • 📖 Auto-Generated API Documentation: OpenAPI integration for your registered agents, out of the box!

See Releases for the latest updates at and Roadmap for what's coming.

💖 Sponsors

You can support the ongoing development of FastAPI Agents by becoming a sponsor:

Sponsor FastAPI Agents

📚 Documentation

For further documentation, including detailed API documentation for the available agent frameworks, visit the FastAPI Agents Documentation.

🚀 Installation

Install FastAPI Agents using pip, poetry or uv:

pip install fastapi-agents
poetry add fastapi-agents
uv add fastapi-agents

Install optional extras for your chosen agent frameworks:

pip install 'fastapi-agents[pydantic-ai]'
poetry add fastapi-agents -E pydantic-ai
uv add fastapi-agents --extra pydantic-ai

For available extras, replace pydantic-ai with the desired agent framework (e.g. smolagents or llama-index). See pyproject.toml for the full list of extras.

That's it! You're all set to start integrating AI agents into your FastAPI applications. 🎉

🏁 Quick Start

Registering Agents

Here’s how to get started with a basic PydanticAI agent:

from fastapi import FastAPI
from fastapi_agents import FastAPIAgents
from pydantic_ai import Agent

# Create a FastAPI application and FastAPIAgents instance.
app = FastAPI()
agents = FastAPIAgents(path_prefix="/agents")

# Initialize and register the agent. 
# The framework is automatically detected.
agent = Agent("openai:gpt-4o-mini")
agents.register("pydanticai", agent)

# Include the router in your FastAPI application.
app.include_router(agents)

Adding Security

Secure your endpoints with API Key authentication in just a few steps:

from fastapi.security import APIKeyHeader
from fastapi_agents import FastAPIAgents

# Define API Key validation
def validate_api_key(api_key: str = Depends(APIKeyHeader(name="X-API-Key"))):
    if api_key != "my-secret-api-key":
        raise HTTPException(status_code=403, detail="Invalid API Key")

# Secure the agents
agents = FastAPIAgents(path_prefix="/agents", security_dependency=validate_api_key)

👉 See Security Examples for more details.

Running the Application

Run your FastAPI application with the registered agents:

uvicorn --reload <module>:app

Replace <module> with the name of the Python module containing your FastAPI application.

That's it! You're all set to start building smarter, more secure FastAPI applications with AI agents. 🚀

🤝 Supported Agent Frameworks

FastAPI Agents supports a variety of agent frameworks, including:

  1. PydanticAI: AI agents powered by Pydantic AI. Examples
  2. Llama Index: OpenAI agents with Llama Index integration. Examples
  3. HuggingFace Smolagents: Lightweight and efficient AI agents. Examples
  4. CrewAI: Multi-agent Framework to create Crews. Examples

🐳 Using Docker

FastAPI Agents provides pre-built Docker images for each agent framework. To get started, pull the desired image from the GitHub Container Registry (GHCR):

docker pull ghcr.io/blairhudson/fastapi-agents:pydantic-ai

For more information, see the FastAPI Agents Docker Documentation.

💡 Examples

Explore real-world examples for implementing FastAPI Agents in different scenarios, including step-by-by Jupyter notebook guides and standalone code samples.

See all available Guides and Example Code in the FastAPI Agents documentation.

🤝 Contributing

We welcome contributions! To contribute:

  1. Fork the repository.
  2. Create a feature branch.
  3. Add any new tests and ensure they pass. i.e. uv run pytest.
  4. Submit a pull request.

For any questions or feature requests including additional agent frameworks, open an issue in the repository.

📄 Citation

If you use FastAPI Agents in your work, please consider citing it using the metadata in the CITATION.cff file:

DOI

This DOI represents all versions of the project. For version-specific DOIs, refer to the Zenodo project page.

Alternatively, you can use the following BibTeX entry:

@software{fastapi_agents,
  author = {Blair Hudson},
  title = {FastAPI Agents},
  year = {2025},
  version = {0.1},
  doi = {10.5281/zenodo.14635504},
  url = {https://github.com/blairhudson/fastapi-agents},
  orcid = {https://orcid.org/0009-0007-4216-4555},
  abstract = {FastAPI Agents is the ultimate FastAPI extension for integrating AI agents into your applications.}
}

📜 License

This project is licensed under the MIT License. See the LICENSE file for more details.