Skip to main content

Add an AI Agent to your FastAPI application. The agent knows how to interact with your endpoints within a chat interface.

Project description

FastAPI Agent Logo


💬 Talk to your FastAPI app like it's a teammate.


FastAPI Agent integrates an AI Agent into your FastAPI application.
It allows you to interact with your API endpoints through a chat interface or directly via an API route using an LLM (Large Language Model).

fastapi screenshot

⚙️ Installation:

To install the package, run:

# install with pip
pip install fastapi_agent

# install with uv
uv add fastapi_agent

🧪 Usage:

To use the FastAPI Agent, initialize it with your FastAPI app and AI model.
You can use the default agent routes or add custom ones to your FastAPI application to interact with the agent via a chat interface or API endpoint.

Here is a simple example of how to use the FastAPI Agent with your FastAPI application:

.env

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

app.py

import uvicorn
from dotenv import load_dotenv

from fastapi import FastAPI
from fastapi_agent import FastAPIAgent

# load OPENAI_API_KEY from .env
load_dotenv()

# set your FastAPI app
app = FastAPI(
    title="YOUR APP TITLE",
    version="0.1.0",
    description="SOME DESCRIPTION",
)

# add routes
@app.get("/")
async def root():
    """Welcome endpoint that returns basic API information"""
    return {"message": "Welcome to Test API"}

# add the FastAPI Agent + default routes
FastAPIAgent(
    app,
    model="openai:gpt-4.1-mini",
    base_url="http://localhost:8000",
    include_router=True,
)

# run FastAPI
uvicorn.run(app, host="0.0.0.0", port=8000)

🧭 Default Routes

FastAPI Agent provides two default routes:

  1. /agent/query – Ask anything about your API using natural language. 🧠
curl -k -X POST "http://127.0.0.1:8000/agent/query" \
-H "Content-Type: application/json" \
-d '{"query": "show all endpoints"}'
  1. /agent/chat – A simple web-based chat interface to interact with your API. 💬

💡 You can also add custom routes using agent.chat() method - Example

💬 AI Chat - Web UI

When you integrate FastAPI Agent into your FastAPI application, it automatically adds a new endpoint at /agent/chat, which provides a minimal chat interface to interact with your API.

fastapi demo

🧩 Additional Arguments:

If your application routes use Authorizations Depends (e.g. Headers or Query String API key or HTTP_Bearer), you need to pass a dictionary of the authorizations.
The agent will use them to call your routes and also apply authorizations dependencies to /agent/query route. (see Additional Examples)

api_key = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

FastAPIAgent(
    app,
    model="openai:gpt-4.1-mini",
    base_url="https://localhost:8000",
    auth={"api-key": API_KEY} || {'Authorization': "Bearer API_KEY"},
    include_router=True,
)

You can control which routes the agent can access using the ignore_routes or allow_routes arguments:

  • Use ignore_routes to exclude specific routes from being accessible to the agent.
  • Use allow_routes to restrict the agent to only the specified routes.

Both ignore_routes and allow_routes must be a list of strings in the format: ["METHOD:/path"]

FastAPIAgent(
    app,
    model="openai:gpt-4.1-mini",
    base_url="https://localhost:8000",
    ignore_routes=["DELETE:/users/{user_id}"],
    include_router=True,
)

📁 Additional Examples:

Check out our examples for ai_agent, fastapi_discovery, and fastapi_agent.
All examples are available here.


If you're using Authorizations Depends in your routes, make sure to pass the required headers when calling the /agent/query endpoint like in the examples below:

python

import requests

res = requests.post(
    "http://127.0.0.1:8000/agent/query", 
    json={"query": "show all endpoints"},
    headers={"auth": '{"api-key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}'}
    - OR - 
    headers={"auth": '{"Authorization": "Bearer 12345678"}'}
)
print(res.json())

curl

curl -k -X POST "http://127.0.0.1:8000/agent/query" \
  -H 'auth: {"api-key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}' \
  - OR -
  -H 'auth: {"Authorization": "Bearer 12345678"}' \
  -H "Content-Type: application/json" \
  -d '{"query": "show all endpoints"}'

📜 License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_agent-0.2.4.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_agent-0.2.4-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_agent-0.2.4.tar.gz.

File metadata

  • Download URL: fastapi_agent-0.2.4.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for fastapi_agent-0.2.4.tar.gz
Algorithm Hash digest
SHA256 4b9e1d829a89653fc8fc1b30adf1bfcde4518dcdc9d8cd0a6f4097b031c6b947
MD5 a24ee23a3e7868b85aa143d9d268d3c7
BLAKE2b-256 a79a96d4f5bb09e6c63c09f4de2ded0f40b6f74c421b4615e058420cb80404fb

See more details on using hashes here.

File details

Details for the file fastapi_agent-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: fastapi_agent-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for fastapi_agent-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2b3b5749b6128161222f62cfe825bf533b224fe9f8dbe872211476efe81b2925
MD5 4d4f2aacdf9e772e6da63d49324f4c41
BLAKE2b-256 46d54648164314eb6474afe04c9c83dd7eeb52c744290e64e1760ecc614cfd90

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page